أوامر ستفيدك في مراقبة جهازك

ككل الأنظمة لينوكس نظام متعدد المهام: قادر على تنفيذ عدة تطبيقات في نفس الوقت, كما أنه متعدد المستخدمين: عدة مستخدمين قادرين على استخدام نفس الجهاز في نفس الوقت ( عبر الإتصال بالأنترنات).
كل هذه البرامج و المستخدمين يقوم بتنظيمها النظام, لكن ماذا يحدث لو تسبب برنامج ما في تعطيل النظام؟ كيف أغلق برنامج عالق؟
في الوندوز نستخدم عادة ctrl+alt+del لغلق البرامج العالقة (إن لم يكن بإعادة تشغيل الجهاز), و لكن في عالم لينوكس ستتعلم تقنيات أخرى لتتعلمها بواسطة الترمنال (لن أتحدث عنSystem Monitor فالجميع يعرفها باعتقادي).


W ماذا تفعل ؟

سنتعلم في هذا الدرس مجموعة من الأوامر لفهم ماذا يحدث على جهازنا.
أول ما سنتعلمه هو أمر سهل للغاية w و هذا اﻷمر نحتاجه كثيرا في ادارة الخوادم Servers لمعرفة المستخدمين الحاليين للجهاز و الوقت الذي دخلو فيه, أما في الإستعمال العادي حيث تكون المستخدم الوحيد لجهازك فهو سيساعدك للتعرف على وقت بداية استخدامك للجهاز.


الوقت متوفر أيضا عبر Date


للتعرف على الوقت و التاريخ يكفي كتابة date.




معرفة الوقت المستغرق في استخدام الجهاز عبر uptime


و هو أمر آخر مفيد لمعرفة مدة العمل الجملية خصوصا و أن لينوكس نادرا ما يحتاج ﻹعادة تشغيل الجهاز, اللّهم إن قمنا بتحديث النواة و هو ما يمكننا من وقت الذي استغرقه الموظفين في العمل أو هل تعرض الخادم لخلل جعله يظطر لإعادة تشغيله أو لا.




هنا فتحت الجهاز منذ حوالي الساعة و الربع علما أننا نجد العداد يصبح يحتسب بالأيام إن طالت المدة.

ثم نجد ثلاثة أرقام على اليمين و هي بالتوالي:
- معدل الشحن/العبئ على الجهاز منذ الدقيقة
- معدل الشحن/العبئ على الجهاز في الخمس دقائق الأخيرة
- معدل الشحن/العبئ على الجهاز في الربع ساعة اﻷخيرة


و هي تحتسب بحسب الفترة التي يستغرقها البرنامج في العمل داخل المعالج, مع الملاحظ أننا نقول بأن الجهاز يعمل بكافة طاقته عند الوصول للرقم 2 بالنسبة ل Dual core و 4 بالنسبة لل Quad core و بالتالي عندما يكون الرقم مرتفعا فهذا سيئ لأن الجهاز يعمل بكافة طافته, أما إن أردنا معرفة الضغط على الجهاز في الوقت الفعلي فيمكننا ذلك عبر اﻷمر tload الذي يعمل على رسم مخطط لحالة المعالج.




نستعمل ctrl +c للخروج.


لمعرفة المستخدمين الحاليين


نستطيع استعمال الأمر who أو w الذي تحدثنا عنه في بداية الشرح




لتوضيح الجدول فهو يتكون من :
- USER أي اسم المستخدم (login المستعمل للدخول).
- TTY أي اسم الواجهة عموما يحتوي لينوكس على 6 واجهات نصية من tty1 إلى tt6 و تكون tty7 الواجهة الرسومية الوحيدة, كما نستطيع أن نفتح عدد غير محدود من الترمنال Terminal في Gnome 
- FROM و يحتوي على عنوان IP المستخدم لفتح حساب ( ظهرت في الصورة 0 ﻷنني استخدم الجهاز مباشرة)
- @LOGIN الوقت التي استخدمته فيها لأول مرة.
- IDLE الوقت الذي ظل فيه المستخدم غير فاعل (لم يدخل أي أمر)
- What الأمر الذي قمنا بادخاله.


ps & top وضع لائحة للعمليات

لتبسيط اﻷمور نقول عن عملية أوProcess البرنامج الذي يشتغل بالذاكرة. أغلب البرامج تقوم بفتح process وحيد كما هو الحال بالنسبة ل FireFox في حين نجد chrome يقوم بعمل نسخة عن نفسه كلما قمنا بفتح onglet جديدة.

لعرض لائحة بال processes نقوم باستخدام ps أو top.

ps تعطينا لائحة بالبرامج المفتوحة لحظة كتابة اﻷمر في حين أن top يعطينا المعلومات في الوقت الفعلي.

لنقم بتجربة اﻷمرps من دون خيارات


سنلاحظ وجود أربعة أعمدة:
- PID و يحتوي على رقم تعريف process. كل process له رقم تعريف خاص به و هذا الرقم سيكون مفيدا لنا عندما نرغب في ايقافه لاحقا.
- TTY و يحتوي على رقم console الذي يشتغل تعت process
- TIME الفترة التي استغرقها process في تنفيذ اﻷمر
- CMD البرنامج الذي ولّد process



ps أظهر لنا معالجين اثنين فقط لأنه لا يظهر سوى البرامج التي نتجت عن نفس المستخدم و لكن لا يعني هذا أن الجهاز لا يحتوي سوى هذين المعالجين.


فللنظر الآن للأمر ps -ef الذي يظهر لنا جميع المعالجات لكل المستخدمين


اللائحة طويلة, هذا جزء فقط مما أظهره ps -ef
سنلاحظ أسضا إضافة (UID (User ID
  أي اسم المستخدم



ps -ejH يظهر العمليات/المعالجات في شكل شجرة


هذا اﻷمر يظهر لنا كل عملية و العملية المتجذرة منها. عدة عمليات تسمى بالأطفال و هذا الأمر يساعدنا في معرفة من أين جاء كل معالج.




 ps - u لإظهار العمليات بحسب اسم المستخدم


نستطيع تصفية النتائج و اظهار العمليات التي يستخدمها شخص بعينه



topلإظهار العمليات بشكل ديناميكي


ps تظهر العمليات بشكل ثابت في حين أن العمليات تتغير من لحظة لأخرى لذا نستخدم top, لنلق نظرة:




حسنا يبدو من الصورة واضحا أنني أستخدم FireFox في كتابة المقال و أستمع للموسيقى بواسطة audacious و لكن لماذا لا يظهر جميع العمليات؟ ببساطة لأنه لا يظهر سوى أكثر العمليات التي تجهد المعالج .


ملاحظة: نستخدم q للخروج و h لطلب مساعدة.


kill لقتل العملية processus


نستخدم هذا اﻷمر لقتل المعالجات التي تعلق أ التي نرغب في إيقافها, أول مرحلة هي البحث عن المعرف الخاص بها أي pid 
لنفترض أنني أرغب في قتل Firefox سأبحث أولا عن رقم pid الخاص به.


ها قد وجدته الآن أكتب
kill 1676
ليغلق البرنامج, كما أستطيع أن أغلق عدة برامج في نفس الوقت
kill 1676 3552 1234
ملاحظة هامة: تجنب إغلاق المعالجات/ processus التي لا تعرف فيما تستخدم لأن الكثير منها يستخدم من قبل النظام خصوصا المتعلقة بال root .

 حسنا قد تقول لي حاولت مع هذا اﻷمر و لكنه لم يعمل معي, حسنا اليك اﻷمر و لكن لا تسخدمه إلا في حالة كون البرنامج عالق
مع kill -9  نعم الرقم 9 يمكنك من إغلاق البرنامج من دون أن يترك للبرنامج الوقت لأن يغلق بطبعه.

killall يقتل كل العمليات

على عكس kill ف killall لا يستخدم رقم PID لمعرفة البرنامج الذي تود اغلاقه بل اسمه الحقيقي
نأخذ مثالا على ذلك أنني فتحت ثلاثة أوامر find و استغرق اﻷمر مدة طويلة لذا أرغب في اغلاقها جميعا لكن من دون ان اضطر للبحث عن pid الخاص بكل عملية لذا سأكتب:
killall find
لإيقاف الحاسوب

 يوجد ثلاثة خيارات بامكانك أن تستعمل أحدها:

sudo poweroff
sudo halt 
sudo shutdown -P now

لإعادة تشغيل الجهاز
 أعرف أمرين يمكننان من ذلك:

sudo reboot
sudo shutdown -r now
كلمة الختام
 هذه عينة صغيرة من قدرات لينوكس العجيبة التي تمكنك من التحكم الكامل في جهازك فقط من سطر اﻷوامر, أرجو أنكم استفدتم.

المرجع

3 comments: