كيفية مراقبة تقدم أوامر Linux (مع PV والتقدم)

نشرت: 2022-01-29
موجه Linux Terminal على جهاز كمبيوتر محمول
فاطماواتي أحمد زينوري / Shutterstock.com

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

إذا كنت في رحلة طويلة على متن طائرة بدون شاشات فيديو في ظهور المقاعد ، فليس من السهل معرفة المسافة التي قطعتها خلال رحلتك. أنت تعرف متى أقلعت. أنت تعرف المدة التي يتوقع أن تستغرقها الرحلة. ولكن كيف تعرف ما إذا كنت على الطريق الصحيح أو في الوقت المحدد أو متأخرًا جدًا عن الجدول الزمني؟ إذا كنت لا ترغب في مشاهدة الفيلم أثناء الطيران ، يمكنك عادةً تبديل شاشة الفيديو لعرض خريطة مع موقع طائرتك عليها. يمكنك أيضًا الحصول على بعض الإحصائيات ، مثل الوقت المتوقع للوصول (ETA) ، وهو أمر رائع.

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

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

تركيب الكهروضوئية

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

لتثبيت pv على Ubuntu ، استخدم هذا الأمر:

 sudo apt-get install pv 

لتثبيت pv على Fedora ، استخدم هذا الأمر:

 sudo dnf تثبيت الكهروضوئية 

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

 sudo pacman -Syu pv 

باستخدام pv

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

الإعلانات

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

 pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | الرمز البريدي> gparted.zip 

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

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

  • البيانات المنقولة حتى الآن.
  • الوقت المنقضي حتى الآن.
  • معدل نقل البيانات (الصبيب).
  • شريط تقدم ونسبة مئوية مكتملة.
  • الوقت المقدر المتبقي قبل الانتهاء (ETA).

نسخ ملف بصيغة pv

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

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

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

نسخ ملف مع pv في نافذة طرفية

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

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

 tar -c ملفات التعليمات / | الكهروضوئية | وثائق tar -x -C / 

الإعلانات

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

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

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

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

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

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

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

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

الإعلانات

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

 tar -czf - ./help-files/ | pv> تعليمات-files.tgz 

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

ذات صلة: كيفية ضغط الملفات واستخراجها باستخدام أمر tar على نظام Linux

خيارات العرض الكهروضوئية

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

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

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

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

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

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

الإعلانات

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

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

باستخدام الكهروضوئية مع مرحاض

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

نحن هنا نقوم بتوصيل جميع ملفات ".page" الموجودة في دليل ملفات التعليمات إلى wc .

عندما يكتمل wc ، يمكننا أن نرى عدد الأحرف المرتجعة (السطور) والأحرف والكلمات من جميع ملفات ".page" في مجلد ملفات التعليمات.

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

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

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

 sudo apt-get install progress 

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

 sudo dnf تثبيت التقدم 

sudo dnf تثبيت التقدم في أرملة طرفية

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

 sudo pacman -Syu التقدم 

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

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

 تقدم 

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

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

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

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

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

 tar -czf help.tgz ./help-files/ | التقدم م 

ستظهر نافذة الطرفية تقدم الأمر tar أثناء قيامه بإنشاء الأرشيف.

الإعلانات

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

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

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

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

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

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

 التقدم -M 

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

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

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

 كلمات القط 

الإعلانات

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

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

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

هذا أنيق جدًا.

100٪ اكتمل

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

ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين