كيفية مراقبة تقدم أوامر Linux (باستخدام pv وprogress)

بدلاً من الطيران بشكل أعمى، استخدم Linux pv و progress أوامر لتتبع تقدم الأمر. ستمنحك هذه الأدوات المساعدة أشرطة تقدم للأوامر التي لا تحتوي عادةً على أشرطة تقدم. سترى أيضًا الوقت المقدر حتى الانتهاء.




قد يبدو بدء تنفيذ أمر من نافذة المحطة الطرفية في بعض الأحيان أشبه برحلة طويلة بدون شاشة فيديو. فلا يوجد ما يشير إلى ما إذا كان كل شيء على ما يرام أو ما إذا كانت العملية قد توقفت، أو مدى اقترابها من الاكتمال. ولا يعد المؤشر الوامض مفيدًا للغاية.

ال pv و progress تمنحك الأوامر بعض الإحصائيات وقليلاً من الملاحظات المرئية. يمكنك معرفة مدى قرب اكتمال العملية. وهذا يعني أنك تحصل على وقت تقديري للعمليات الجارية. وبالمقارنة بالتحديق في المؤشر، فإن هذا يفوز بسهولة.


كيفية تثبيت الطاقة الشمسية

يجب عليك التثبيت pv.

للتثبيت pv في أوبونتو استخدم هذا الأمر:

sudo apt-get install pv

sudo apt-get install pv في نافذة المحطة الطرفية

للتثبيت pv في فيدورا استخدم هذا الأمر:


sudo dnf install pv

sudo dnf install pv في نافذة المحطة الطرفية

للتثبيت pv في Manjaro استخدم هذا الأمر:

sudo pacman -Syu pv

sudo pacman -Syu pv في نافذة المحطة الطرفية

استخدام pv

pv يرمز إلى عارض الأنابيبيجب أن يكون التوصيل متضمنًا في الأمر في مكان ما. إليك مثال حيث نقوم بتوصيل صورة ISO عبر zip لإنشاء ملف مضغوط بصيغة ISO.

لإبطاء الأوامر بشكل كافٍ بحيث يمكن التقاط لقطة شاشة، تم تخزين بعض الملفات في الأمثلة المستخدمة في هذه المقالة على جهاز USB خارجي قديم وبطيء يسمى SILVERXHD.


pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zip

gparted.zip في نافذة المحطة الطرفية” data-img-url=”https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2019/07/progress_6.png” src=”https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2019/07/progress_6.png” style=”display:block;height:auto;max-width:100%;”/>

المعلومات pv يظهر لنا ما يمكن رؤيته في السطر السفلي من الشاشة.

مخرجات pv لإنشاء ملف zip في نافذة المحطة الطرفية

من اليسار إلى اليمين، المعلومات التي يتم عرضها هي:

  • البيانات المنقولة حتى الآن.
  • لقد مضى الوقت منذ فترة طويلة.
  • معدل نقل البيانات (الإنتاجية).
  • شريط التقدم ونسبة الإنجاز.
  • الوقت المقدر المتبقي قبل الانتهاء (ETA).


نسخ ملف باستخدام pv

لنسخ ملف مع إخراج من pvاستخدم هذا الأمر:

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | gparted.iso في نافذة طرفية

نحصل على تقرير تقدم أثناء نسخ الملف.

نسخ ملف باستخدام pv في نافذة المحطة الطرفية

نسخ ملفات متعددة باستخدام pv

لنسخ ملفات ومجلدات متعددة باستخدام pv نحن بحاجة إلى استخدام خدعة صغيرة. نستخدم tar لنقل الملفات لنا.

tar -c help-files/ | pv | tar -x -C Documents/


sudo apt-get install pv في نافذة المحطة الطرفية

ال tar -c help-files/ جزء من الأمر يأمر tar لإنشاء (-c) أرشيف للملفات الموجودة في مجلد ملفات المساعدة. يتم نقل هذا عبر pv حتى نتمكن من الحصول على عرض للتقدم. ثم يتم إرجاعه إلى tar للجزء الأخير من الأمر. يتم استخراج الأرشيف (-x) ويتم تغيير الدليل (-C) إلى المستندات قبل الاستخراج.

وبذلك، يتم نسخ الملفات والمجلدات الموجودة في ملفات المساعدة إلى مجلد المستندات، مع عرض التقدم.

sudo apt-get install pv في نافذة المحطة الطرفية

النتيجة مختلفة قليلاً هذه المرة.


لا نحصل على وقت تقديري للوصول. يعرض شريط التقدم الآن مؤشرًا متحركًا. يوضح أن العملية نشطة، لكنها لا تنمو من اليسار إلى اليمين مثل شريط التقدم التقليدي. pv يقتصر على عرض المعلومات التي يمكنه استخراجها من العملية التي يتم توجيهها.

استخدام pv وtar لإنشاء أرشيف

نسخ الملفات باستخدام pv و tar لا يترك لنا ملف أرشيف. يتم إنشاء نوع من الأرشيف “الافتراضي” بواسطة tar، والتي يتم تغذيتها مباشرة مرة أخرى إلى tar لاستخراج الملفات. إذا كان هدفنا هو نسخ الملفات، فهذا أمر ممكن. ولكن ماذا لو أردنا إنشاء ملف أرشيف؟

لا يزال بإمكاننا استخدام tar لإنشاء ملف أرشيف والحصول على تقرير التقدم من pv.الخيارات المستخدمة مع tar نكون -c (إنشاء أرشيف)، -z (ضغط مع gzip) و -f (اسم ملف الأرشيف).

لاحظ أننا نستخدم - مثل اسم الملف، والذي يسبب tar للإستخدام مخرج قياسي، وكتابة مخرجاته في نافذة المحطة الطرفية. لا نرى هذا المخرج لأنه يتم توجيهه عبر pv.


سيكون الاسم الفعلي للأرشيف هو اسم الملف الذي ننقل منه الإخراج pv في هذه الحالة، يكون “help-files.tgz”.

tar -czf - ./help-files/ | pv > help-files.tgz

sudo apt-get install pv في نافذة المحطة الطرفية

نحصل على نفس مؤشرات التقدم كما في السابق، ويتم إنشاء ملف الأرشيف لنا.

sudo apt-get install pv في نافذة المحطة الطرفية

خيارات عرض pv

هناك عدد من الخيارات التي يمكنك استخدامها مع pv لتغيير تفاصيل تقريرها.


إذا استخدمت أيًا من هذه الخيارات، فسيتم إيقاف تشغيل جميع الخيارات الأخرى. لذا، إذا كنت تريد استخدام ثلاثة من خيارات العرض، فيتعين عليك تحديد هذه الخيارات الثلاثة.

استخدام pv بدون أي خيارات هو نفس استخدام -pterb خيارات.

  • -p: عرض النسبة المئوية للإكمال. هذا هو شريط التقدم ورقم النسبة المئوية للإكمال.
  • -t: عرض الوقت المنقضي.
  • -e: عرض وقت الوصول المتوقع.
  • -r: عرض معدل نقل البيانات.
  • -b: عرض عدد البايتات (البيانات المنقولة حتى الآن).
  • -n: عرض النسبة المئوية كعدد صحيح. يؤدي هذا إلى طباعة النسبة المئوية المكتملة كرقم صحيح، مع كل تحديث جديد في سطر جديد.

دعنا نكرر الأمر الأخير ونمرر -p (نسبة الإنجاز) خيار pv.

tar -czf - ./help-files/ | pv - p > help-files.tgz

sudo apt-get install pv في نافذة المحطة الطرفية


يؤدي هذا إلى إيقاف تشغيل كافة خيارات العرض الأخرى. pv يوفر عنصر النسبة المئوية المكتملة فقط.

لأن pv لا يحصل على نسبة مئوية مكتملة من الرقم tarيتم استبدال شريط التقدم بمؤشر متحرك. لا يوجد رقم مئوي.

sudo apt-get install pv في نافذة المحطة الطرفية

استخدام pv مع wc

يمكننا أن نستخدم pv لنقل ملف نصي (أو ملفات) إلى wc. wc سيتم بعد ذلك حساب إرجاع العربة والأحرف والكلمات و pv سيعطينا تقريرا بالتقدم.

هنا نقوم بنقل جميع ملفات “.page” الموجودة في دليل ملفات المساعدة إلى wc.

 

sudo apt-get install pv في نافذة المحطة الطرفية

متى wc بمجرد اكتمال ذلك، يمكننا رؤية عدد إرجاعات العربة (الأسطر) والأحرف والكلمات من جميع ملفات “.page” الموجودة في مجلد ملفات المساعدة.

sudo apt-get install pv في نافذة المحطة الطرفية

تثبيت أمر التقدم

ال progress الأمر يعطي نفس النوع من معلومات مفيدة مثل pvولكنه يعمل مع مجموعة محددة من أوامر Linux.

للتثبيت progress في أوبونتو، استخدم هذا الأمر:

sudo apt-get install progress

sudo apt-get install progress في نافذة المحطة الطرفية

للتثبيت progress في فيدورا، استخدم هذا الأمر:


sudo dnf install progress

sudo dnf install pv في نافذة المحطة الطرفية

للتثبيت progress في Manjaro، استخدم هذا الأمر:

sudo pacman -Syu progress

sudo dnf install pv في نافذة المحطة الطرفية

تقدم الأوامر يعمل مع

الكتابة progress في نافذة المحطة الطرفية والضغط على Enter سيمنحك قائمة بالأوامر التي progress يعمل مع.

progress

إخراج أمر التقدم في نافذة المحطة الطرفية


استخدام Progress مع الأنابيب

هناك طريقتان يمكننا استخدامهما لمراقبة الأوامر باستخدام progressالأول هو استخدام الأنابيب.

ال tar يوجد الأمر في قائمة الأوامر المدعومة progress يمكن المراقبة، لذا دعنا نستخدم tar.

الخيارات التي سنستخدمها هي الخيارات القياسية -c (إنشاء أرشيف)، -z (ضغط مع gzip) و -f (اسم الملف) الخيارات. سنقوم بإنشاء أرشيف مضغوط لكل شيء موجود في مجلد ملفات المساعدة، وسيتم تسمية الأرشيف “help.tgz”.

نحن نقوم بإيصال ذلك إلى progress واستخدامها -m خيار (المراقبة) لذلك progress يستمر في الإبلاغ عن العملية حتى اكتمالها.

tar -czf help.tgz ./help-files/ | progress -m

sudo apt-get install pv في نافذة المحطة الطرفية


ستعرض نافذة المحطة تقدم العملية tar الأمر أثناء إنشاء الأرشيف.

sudo apt-get install pv في نافذة المحطة الطرفية

عند معالجة كل ملف، يتم إدراجه مع المعلومات التالية:

  • معرف العملية.
  • اسم العملية.
  • النسبة المئوية المكتملة.
  • البيانات المعالجة والحجم الإجمالي للملف.
  • معدل البيانات (الإنتاجية).
  • الوقت المتبقي المقدر (ETA).

قد تفاجأ عندما ترى مجموعة بيانات ثانية تظهر. هذه المجموعة الأولى من البيانات مخصصة لـ tar. والثاني هو ل gzip. tar مكالمات gzip لإجراء الضغط. لأن gzip يوجد في قائمة الأوامر المدعومة، progress تقارير عنه.

استخدام التقدم في وضع المراقبة المستمرة

يمكنك استخدام progress في وضع المراقبة المستمرة في الوقت الفعلي باستخدام الخيار -M (الشاشة).


اكتب الأمر التالي في نافذة المحطة الطرفية:

progress -M

sudo dnf install pv في نافذة المحطة الطرفية

progress سيبلغك البرنامج بأنه لا توجد أوامر قيد التشغيل ليتم مراقبتها. ولكن لن يتم إرجاعك إلى سطر الأوامر. progress ينتظر حتى يبدأ الأمر الذي يمكنه مراقبته. ثم يبدأ تلقائيًا في إرسال التقارير بشأنه.

sudo dnf install pv في نافذة المحطة الطرفية

في نافذة طرفية أخرى، اكتب الأمر الموجود في قائمة الأوامر التي يمكن للتقدم مراقبتها.


نحن سوف نستخدم cat. لن يتم تسجيل الأوامر التي تنتهي بسرعة كبيرة مع progress، لذلك سنقوم بإدراج محتويات ملف نصي طويل جدًا.

cat words.page

sudo dnf install pv في نافذة المحطة الطرفية

في نافذة المحطة مع progress ستجد فيه إحصائيات لـ cat الأمر أثناء تنفيذه والعمل نحو الانتهاء منه.

sudo apt-get install pv في نافذة المحطة الطرفية

متى cat ينتهي من إدراج الملف progress يعود إلى حالة الانتظار.

في كل مرة يقوم أحد الأوامر التي يمكنه الإبلاغ عنها بأداء مهمة كبيرة، progress سيتم مراقبته والإبلاغ عنه تلقائيًا.


هذا جميل جدًا.

تم الانتهاء منه بنسبة 100%

تخلص من التخمين في التساؤل عن كيفية أداء أمر طويل الأمد، وخذ استراحة من التفكير في المؤشر الخاص بك pv و progress .

أضف تعليق