بدلاً من الطيران بشكل أعمى، استخدم Linux pv
و progress
أوامر لتتبع تقدم الأمر. ستمنحك هذه الأدوات المساعدة أشرطة تقدم للأوامر التي لا تحتوي عادةً على أشرطة تقدم. سترى أيضًا الوقت المقدر حتى الانتهاء.
قد يبدو بدء تنفيذ أمر من نافذة المحطة الطرفية في بعض الأحيان أشبه برحلة طويلة بدون شاشة فيديو. فلا يوجد ما يشير إلى ما إذا كان كل شيء على ما يرام أو ما إذا كانت العملية قد توقفت، أو مدى اقترابها من الاكتمال. ولا يعد المؤشر الوامض مفيدًا للغاية.
ال pv
و progress
تمنحك الأوامر بعض الإحصائيات وقليلاً من الملاحظات المرئية. يمكنك معرفة مدى قرب اكتمال العملية. وهذا يعني أنك تحصل على وقت تقديري للعمليات الجارية. وبالمقارنة بالتحديق في المؤشر، فإن هذا يفوز بسهولة.
كيفية تثبيت الطاقة الشمسية
يجب عليك التثبيت pv
.
للتثبيت pv
في أوبونتو استخدم هذا الأمر:
sudo apt-get install pv
للتثبيت pv
في فيدورا استخدم هذا الأمر:
sudo dnf install pv
للتثبيت 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 | zip > gparted.zip
المعلومات pv
يظهر لنا ما يمكن رؤيته في السطر السفلي من الشاشة.
من اليسار إلى اليمين، المعلومات التي يتم عرضها هي:
- البيانات المنقولة حتى الآن.
- لقد مضى الوقت منذ فترة طويلة.
- معدل نقل البيانات (الإنتاجية).
- شريط التقدم ونسبة الإنجاز.
- الوقت المقدر المتبقي قبل الانتهاء (ETA).
نسخ ملف باستخدام pv
لنسخ ملف مع إخراج من pv
استخدم هذا الأمر:
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso
نحصل على تقرير تقدم أثناء نسخ الملف.
نسخ ملفات متعددة باستخدام pv
لنسخ ملفات ومجلدات متعددة باستخدام pv
نحن بحاجة إلى استخدام خدعة صغيرة. نستخدم tar
لنقل الملفات لنا.
tar -c help-files/ | pv | tar -x -C Documents/
ال tar -c help-files/
جزء من الأمر يأمر tar
لإنشاء (-c
) أرشيف للملفات الموجودة في مجلد ملفات المساعدة. يتم نقل هذا عبر pv
حتى نتمكن من الحصول على عرض للتقدم. ثم يتم إرجاعه إلى tar
للجزء الأخير من الأمر. يتم استخراج الأرشيف (-x
) ويتم تغيير الدليل (-C
) إلى المستندات قبل الاستخراج.
وبذلك، يتم نسخ الملفات والمجلدات الموجودة في ملفات المساعدة إلى مجلد المستندات، مع عرض التقدم.
النتيجة مختلفة قليلاً هذه المرة.
لا نحصل على وقت تقديري للوصول. يعرض شريط التقدم الآن مؤشرًا متحركًا. يوضح أن العملية نشطة، لكنها لا تنمو من اليسار إلى اليمين مثل شريط التقدم التقليدي. 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
نحصل على نفس مؤشرات التقدم كما في السابق، ويتم إنشاء ملف الأرشيف لنا.
خيارات عرض pv
هناك عدد من الخيارات التي يمكنك استخدامها مع 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
يمكننا أن نستخدم pv
لنقل ملف نصي (أو ملفات) إلى wc
. wc
سيتم بعد ذلك حساب إرجاع العربة والأحرف والكلمات و pv
سيعطينا تقريرا بالتقدم.
هنا نقوم بنقل جميع ملفات “.page” الموجودة في دليل ملفات المساعدة إلى wc
.
متى wc
بمجرد اكتمال ذلك، يمكننا رؤية عدد إرجاعات العربة (الأسطر) والأحرف والكلمات من جميع ملفات “.page” الموجودة في مجلد ملفات المساعدة.
تثبيت أمر التقدم
ال progress
الأمر يعطي نفس النوع من معلومات مفيدة مثل pv
ولكنه يعمل مع مجموعة محددة من أوامر Linux.
للتثبيت progress
في أوبونتو، استخدم هذا الأمر:
sudo apt-get install progress
للتثبيت progress
في فيدورا، استخدم هذا الأمر:
sudo dnf install progress
للتثبيت progress
في Manjaro، استخدم هذا الأمر:
sudo pacman -Syu progress
تقدم الأوامر يعمل مع
الكتابة 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
ستعرض نافذة المحطة تقدم العملية tar
الأمر أثناء إنشاء الأرشيف.
عند معالجة كل ملف، يتم إدراجه مع المعلومات التالية:
- معرف العملية.
- اسم العملية.
- النسبة المئوية المكتملة.
- البيانات المعالجة والحجم الإجمالي للملف.
- معدل البيانات (الإنتاجية).
- الوقت المتبقي المقدر (ETA).
قد تفاجأ عندما ترى مجموعة بيانات ثانية تظهر. هذه المجموعة الأولى من البيانات مخصصة لـ tar
. والثاني هو ل gzip
. tar
مكالمات gzip
لإجراء الضغط. لأن gzip
يوجد في قائمة الأوامر المدعومة، progress
تقارير عنه.
استخدام التقدم في وضع المراقبة المستمرة
يمكنك استخدام progress
في وضع المراقبة المستمرة في الوقت الفعلي باستخدام الخيار -M (الشاشة).
اكتب الأمر التالي في نافذة المحطة الطرفية:
progress -M
progress
سيبلغك البرنامج بأنه لا توجد أوامر قيد التشغيل ليتم مراقبتها. ولكن لن يتم إرجاعك إلى سطر الأوامر. progress
ينتظر حتى يبدأ الأمر الذي يمكنه مراقبته. ثم يبدأ تلقائيًا في إرسال التقارير بشأنه.
في نافذة طرفية أخرى، اكتب الأمر الموجود في قائمة الأوامر التي يمكن للتقدم مراقبتها.
نحن سوف نستخدم cat
. لن يتم تسجيل الأوامر التي تنتهي بسرعة كبيرة مع progress
، لذلك سنقوم بإدراج محتويات ملف نصي طويل جدًا.
cat words.page
في نافذة المحطة مع progress
ستجد فيه إحصائيات لـ cat
الأمر أثناء تنفيذه والعمل نحو الانتهاء منه.
متى cat
ينتهي من إدراج الملف progress
يعود إلى حالة الانتظار.
في كل مرة يقوم أحد الأوامر التي يمكنه الإبلاغ عنها بأداء مهمة كبيرة، progress
سيتم مراقبته والإبلاغ عنه تلقائيًا.
هذا جميل جدًا.
تم الانتهاء منه بنسبة 100%
تخلص من التخمين في التساؤل عن كيفية أداء أمر طويل الأمد، وخذ استراحة من التفكير في المؤشر الخاص بك pv
و progress
.