إدارة الحزم، أتمتة المهامّ ومراقبة السّجلات في Red Hat Enterprise Linux


محمد أحمد العيل

يُراجع هذا المقال تثبيت الحزم، تحديثها وحذفها في توزيعة Red Hat Enterprise Linux 7؛ كما يغطّي أتمتة المهامّ باستخدام Cron وكيفيةَ تحليل ملفات السّجلات Logs الموجودة على النظام.

استخدام Yum لإدارة الحزم

تثبيت الحزم

يُستخدَم أمر yum لتثبيت الحزم على Red Hat Enterprise Linux بالطريقة التالية:

# yum -y install package_name

حيثُ package_name اسم الحزمة التي نريد تثبيتها. يمكننا تثبيت أكثر من حزمة في نفس الوقت بكتابة أسمائها على التوالي. نطلُب في المثال التالي تثبيت الحزم httpd وmlocate:

# yum -y install httpd mlocate

يؤدي استخدامُ الخيار y- إلى تجاوز طلب التأكيد الذي يظهر قبل تنزيل الحزم وتثبيتها. يمكن حذفه من الأمر إن أردت.

يُثبّت yum مبدئيا الحزم المطابقة لمعمارية Architecture نظام التشغيل؛ إلا أنه يمكن تخصيص معماريّة الحزمة بإلحاق المعمارية المرغوبة باسم الحزمة. على سبيل المثال، إن كنت تستخدم نظام تشغيل بمعمارية 64 بت فإن تنفيذ الأمر yum install package سيُثبّت الإصدار 64 بت (x86_64) من الحزمة package؛ في حين يؤدي تنفيذ الأمر yum install package.x86 إلى تثبيت الإصدار 32 بت، في حال توفّره.

البحث عن حزمة

قد تحتاج أحيانا لتثبيت حزمة ولكنّك لا تعرف اسمها بالضبط؛ يمكن في هذه الحالة استخدام الأمر yum search أو yum search all للبحث في المستودعات المُفعَّلة عن كلمة مفتاحية في اسم الحزمة أو في وصفها، على التوالي.

على سبيل المثال؛ يبحث الأمر التالي ضمن المستودعات المفعَّلة عن الحزم التي تحوي كلمة log في أسمائها أو في مختصر عملها:

# yum search log

بينما يبحث الأمر التالي عن الكلمة log في أسماء الحزم، مختصرات عملها، أوصافها وروابط url الخاصّة بها:

# yum search all log

01_yum_search.png

ماذا إن كنت تعرف اسم برنامج دون أن تعرف الحزمة التي تُثبته؟ مثلا برنامج ps2pdf. يمكن اللجوء في هذه الحالة إلى الأمر yum whatprovides على النحو التالي:

# yum whatprovides "*/ps2pdf"

02_yum_whatprovides.png

الحصول على معلومات عن حزمة

قد تودّ الحصول على معلومات عن حزمة، قبل أن تقرّر تثبيتها على جهازك؛ بعد ظهورها مثلا في نتيجة البحث بالأمر السابق. يمكنك استخدام الأمر yum لهذا الغرض:

# yum info logwatch

03_yum_info.png

البحث عن تحديثات

يُستخدم الأمر yum check-update للبحث عن التحديثات المتوفّرة للحزم. يُظهر الأمر لائحة بالحزم التي يتوفر لها تحديث. يمكنك بعدها تحديث جميع الحزم مرة واحدة بتنفيذ الأمر yum update؛ كما يمكنك تحديث حزمة محدّدة بتنفيذ الأمر yum update package حيثُ package هو اسم الحزمة.

حذف حزمة

يمكن حذف حزمة بالأمر yum remove على النحو التالي:

# yum remove httpd

حزم RPM

يمكن تثبيت البرامج على Red Hat Enterprise Linux بحزم RPM (اختصار لـ RedHat Package Manager) القائمة بذاتها (لا توجد ضمن مستودعات ولا تحتاج للاتصال بالشبكة).

تثبيت الحزم

يُستخدَم الأمر rpm لتثبيت هذه الحزم، ويكثُر استخدام الخيارات Uvh- التي تشير إلى أنه يجب تثبيت الحزمة إن لم تكن مثبّتة على النظام ومحاولة تحديثها إن كانت مثبّتة (U-)، إظهار عرض تفصيلي بنتيجة تنفيذ الأمر (v-) وعرض شريط بتقدّم تنفيذ الأمر (h-). مثلا:

 
# rpm -Uvh package.rpm

عرض لائحة بالحزم المثبتة

يمكن استخدام الأمر rpm مع الخيار qa- (اختصار لـ Query all) لإظهار لائحة بجميع الحزم المثبتة على النظام:

# rpm -qa

جدولة المهامّ باستخدام Cron

تتضمّن أنظمة تشغيل لينكس والأنظمة الشبيهة بيونكس أداة تُسمّى Cron لجدولة المهام (أوامر أو سكربتات الصدفة) للعمل دوريا. تبحث أداة Cron كل دقيقة في المجلّد var/spool/cron/ عن ملفات بأسماء حسابات موافقة لتلك المذكورة في الملف etc/passwd/. تُرسَل مخرجات تنفيذ المهامّ إلى صاحب المهمّة أو المستخدم المحدَّد في متغيّر البيئة MAILTO ضمن الملفّ etc/crontab/ إن كان موجودا.

يُستخدَم الأمر crontab -e لإنشاء ملفات Crontab التي تأخذ الأسطُر فيها الصيغة التالية:

04_crontab_entry.png

نطلُب في المثال التالي جدولة تحديث قاعدة البيانات الخاصة بالملفات (يستخدمها الأمر locate للبحث في الملفات) بحيثُ ينفَّذ أمر الجدولة bin/updatedb/ في اليوم الثاني من كلّ شهر عند الساعة 2:15 صباحا:

 
15 02 2 * * /bin/updatedb

يُقرأ السطر أعلاه “نفّذ الأمر bin/updatedb/ في اليوم الثاني من الشّهر، كل شهر من السنة بدون النظر في يوم الأسبوع (أحد، اثنان، …إلخ) عند الساعة 2 صباحا والدقيقة 15”. تشير العلامة * إلى أن قيمة الحقل غير معيّنة.

ملحوظة: المحرّر المستخدم مبدئيا عند تنفيذ الأمر crontab -e هو محرّر vi.

ستلاحظ بعد إضافة المهمة إلى الجدول إنشاءَ ملفّ باسم root في المجلد var/spool/cron/، كما ذكرنا آنفا. يمكن عرض جميع ملفات Crontab بسرد محتويات المجلّد السّابق الذكر:

 
# ls -l /var/spool/cron

كما يمكن للمستخدم الحالي (root) عرضُ جميع مهامّه المجدولة إما بعرض محتوى الملف var/spool/cron/root/ أو بتنفيذ الأمر crontab -l.

تستطيع جدولة مهمّة للعمل أكثر من مرة. نطلُب من Cron في المثال التالي تنفيذ السكربت myscript وتوجيه مخرجاته إلى dev/null/ في الدقيقة الأولى من اليومين الأول والخامس عشر من كل شهر:

01 00 1 * * /myscript > /dev/null 2>&1
01 00 15 * * /my/script > /dev/null 2>&1

يمكن دمج السّطرين على النحو التالي:

 
01 00 1,15 * *  /my/script > /dev/null 2>&1

نطلُب في المثال التالي تنفيذ سكربت عند الساعة الواحدة و30 دقيقة صباحا في اليوم الأول من الشهر كل ثلاثة أشهر (الأشهر 1، 4، 7 و10):

 
30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1

إلا أنه توجد طريقة أسهل من السابقة؛ إذ يتيح Cron تحديد عدد مرات للتنفيذ. إن أردنا مثلا تنفيذ أمر كل 3 دقائق فإننا نستخدم الصّيغة 3/* مكان الدقائق. نفس الشي بالنسبة للساعات، الأيام أو الأشهر. يؤدي السّطر التالي نفس غرض السّطر السابق:

 
30 01 1 */3 * /my/other/script > /dev/null 2>&1

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

@reboot  - - تنفيذ السكربت أو الأمر مباشرة بعد إقلاع النظام.
@yearly  - 00 00 1 1 * - مرة في السنة.
@monthly - 00 00 1 * * - مرة في الشهر.
@weekly  - 00 00 * * 0 - مرة في الأسبوع.
@daily	 - 00 00 * * * - مرة في اليوم.
@hourly	 - 00 * * * *  - مرة في الساعة.

راجع مقال كيف تجدول مهامك الروتينية باستخدام أداتي Cron و Anacron في لينكس للمزيد.

السّجلات

توجد سجلّات النظام في المجلّد var/log/. يحتفظ النظام بسجلات مختلفة داخل هذا المجلّد، موزّعة على مجلّدات فرعية مثل audit، httpd وsamba. يعمل النّظام على تقسيم السّجل على ملفات لتجنّب الحصول على ملفات كبيرة جدا؛ تُعرَف هذه العمليّة بالتدوير Rotation حيثُ تُنقَل السجلات القديمة إلى ملفّ آخر بنفس الاسم مع عدد أو تاريخ للترتيب (مثلا secure-20160530).

05_logs.png

من أهمّ ملفات السّجلات: dmesg الذي يحوي الرسائل القادمة من النواة Kernel، ملفّ secure الذي توجد به سجلات لمحاولات الاتصال بالخادوم التي تتطلّب الاستيثاق، messages الذي توجد به رسائل متعلقّة بالنظام ككلّ وwtmpالذي يحوي سجلات بعمليات الدخول Logins والخروج Logouts.

تكمُن أهميّة السّجلات في أنها تعطيك نظرة عن ما يحدُث في النظام أو ما حدث في الماضي. تُستخدَم السّجلات لفحص اختلالات النظام وإصلاحها أو لمراقبة الخادوم. إن أردت تتبّع ما يطرأ على أحد السّجلات مباشرة فيمكنك استخدام الأمر tail مع الخيار f-؛ مثلا:

 
# tail -f /var/log/dmesg

وإن كنت تريد رؤية عمليات الوصول إلى خادوم الوِب فور حدوثها:

 
# tail -f /var/log/httpd/access.log

من المهمّ النظرُ إلى السجلات دوريا، ومعرفة ملفّ السّجلات المناسب لكلّ خدمة تعمل على خادومك.

ترجمة - بتصرّف - لمقال RHCSA Series: Yum Package Management, Automating Tasks with Cron and Monitoring System Logs – Part 10 لصاحبه Gabriel Cánepa.





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن