يُراجع هذا المقال تثبيت الحزم، تحديثها وحذفها في توزيعة 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
ماذا إن كنت تعرف اسم برنامج دون أن تعرف الحزمة التي تُثبته؟ مثلا برنامج ps2pdf
. يمكن اللجوء في هذه الحالة إلى الأمر yum whatprovides
على النحو التالي:
# yum whatprovides "*/ps2pdf"
الحصول على معلومات عن حزمة
قد تودّ الحصول على معلومات عن حزمة، قبل أن تقرّر تثبيتها على جهازك؛ بعد ظهورها مثلا في نتيجة البحث بالأمر السابق. يمكنك استخدام الأمر yum
لهذا الغرض:
# yum info logwatch
البحث عن تحديثات
يُستخدم الأمر 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 التي تأخذ الأسطُر فيها الصيغة التالية:
نطلُب في المثال التالي جدولة تحديث قاعدة البيانات الخاصة بالملفات (يستخدمها الأمر 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
).
من أهمّ ملفات السّجلات: 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.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.