كيفية مراقبة تقدم أوامر Linux (مع PV والتقدم)
نشرت: 2022-01-29 بدلاً من الطيران الأعمى ، استخدم أوامر 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
، نحتاج إلى استخدام حيلة صغيرة. نستخدم 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 تثبيت التقدم
لتثبيت 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
.
أوامر لينكس | ||
الملفات | tar · pv · cat · tac · chmod · grep · diff _ _ _ _ _ _ _ _ _ _ _ · ذيل · ستات · ls · fstab · صدى · أقل · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · تثبيت · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · تحويل · rclone · shred · srm | |
العمليات | الاسم المستعار · شاشة · أعلى · لطيف · رينييس · تقدم · ستريس · systemd · tmux · chsh · تاريخ · في · دفعة · مجانية · أي · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · نعم · قتل · نوم · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
الشبكات | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · حفر · إصبع · nmap · ftp · curl · wget · who · who · w · iptables · ssh-keygen · ufw |
ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين