استفاده از دستور Progress برای مانیتورینگ دستورات داخلی لینوکس

استفاده از دستور progress برای مانیتورینگ دستورات داخلی لینوکس

دستور progress

Progress یک ابزار مانیتورینگ برای نمایش میزان پیشرفت دستوراتی مثل cp, mv , dd, tar و

سایر دستورات  در خط فرمان می باشد .

Progress  یک برنامه coreutils است که وقتی دستوراتی مثل cp , mv, tar,dd, gzip/gunzp , cat, grep

یا سایر دستورات را اجرا میکنیم ،  نحوه اجرای دستورات را ردیابی کرده  ،

میزان درصد مراحل پیشرفت اجرای دستور مثل میزان کپی یک فایل را نمایش مید هد و

در سیستم عامل لینوکس و mac os اجرا میشود.

علاوه بر این به ما نشان میدهد که چه مدت زمانی حدودا اجرای دستور طول میشکد.

کاری که Progress  میکند این هست که فایل سیستم  /proc را میگردد  و داخل دایرکتوری

fd  و fdinfo را جستجو کرده تا ببیند  که آیا فایلهای باز داریم یا خیر و وضعیت فایلها را بررسی و گزارشی تهیه میکند .

مسئله مهم این است که این ابزار خیلی سبک هست یعنی حجم زیادی اشغال نمیکنه .

چگونه  برنامه progress  را روی لینوکس نصب کنیم

برای نصب progess   نیاز به یک  library بنام ncurses داریم پس libncurses را باید قبل از نصب آن نصب نماییم که

با دستورات زیر این کار را انجام میدهیم

در سیستم عامل های از نوع CentOS  و  RHEL

# yum   install ncurses-devel

در سیستم عامل های مدل  Fedora 22+

# dnf    install  ncurses-devel

روی مدلهای از نوع Debian

# sudo apt-get   install libncurses5-dev

برای نصب progress  میتوانید از Github استفاده کنید که به روش زیر عمل میکنیم :

# git clone    https://github.com/Xfennec/progress.git

بعد از آن به دایرکتوری progress  رفته و آنرا کامپایل و اجرایی میکنیم

#cd progress

# make

#  sudo make install

بعد از نصب ، از روی ترمینالی که در آن قرار داریم ؛  اجرایش میکنیم

در زیر یکسری مثال برای نحوه استفاده از progess در لینوکس را نشان داده ایم :

در واقع یکسری دستورات داخلی لینوکس داریم که به آنها coreutils میگویند و با استفاده از Progress میتوانیم مراحل اجرای این دستورات را مشاهده نماییم

$ progress

استفاده از progress  برای مشاهده یک دستور

جهت نمایش مقدار I/O throughput  و همچنین میزان زمان باقیمانده در اجرای یک دستور داخلی از

گزینه –w استفاده میکنیم

$progress    -w

مانیتور کردن یک دستور در حال اجرا با progress

فرض کیند که یک دستور سنگینی را اجرا کرده اید و میخواهید مراحل کار را مانیتور کنید کافی است از گزینه

-m   و  $!  جهت مانیتورینگ آن استفاده نمایید

$ tar    czvf    images.tar.gz    linuxmint-18-cinnamon-64bit.iso CentOS-7.2-x86_64-DVD.iso  CubLinux-1.0RC-amd64.iso |   progress    -m    $!

مانیتور کردن مراحل پیشرفت یک دستور

در مثال بعدی روی دو تا بیشتر از دو تا ترمینال باز میکنیم بعد روی هر کدام دستورات داخلی را اجرا میکنیم و میزان پیشرفت هر دستور روی هر ترمینال را روی یک ترمینال دیگرمشاهده میکنیم

دستور زیر شما را قادر میسازد که کلیه روند پیشرفت  دستورات داخلی در حال اجرا و یا آنهایی که قرار است بصورت قریب الوقوع اجرا گردند را نمایش میدهد

$ watch   progress    -q

برای کسب اطلاعات بیشتر man progress را مطالعه نمایید همچنین میتوانید به سایت github  به آدرس زیر مراجعه نمایید

https://github.com/Xfennec/progess

$man  progress

استفاده از progress  در دستوراتی مثل  کپی یا آرشیو گرفتن یا فشرده سازی فایلهای حجیم بسیار مفید و قابل استفاد میباشد

شما میتوانید این ابزار را روی ماشین خود نصب واز آن استفاده کنید و چنانچه مثالهای بهتری با آن اجرا کردین به ما هم اطلاع دهید .

 

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *