سلسلة RHCSA: إدارة حزمة Yum، وتلقيم المهام باستخدام Cron ومراقبة سجلات النظام – الجزء 10

في هذا المقال، سنستعرض كيفية تثبيت وتحديث وإزالة الحزم في Red Hat Enterprise Linux 7. سنغطي أيضًا كيفية أتمتة المهام باستخدام cron، وسننهي هذا الدليل بشرح كيفية تحديد ملفات سجلات النظام وتفسيرها مع التركيز على تعليمك لماذا كل هذه المهارات ضرورية لكل مسؤول نظام.

RHCSA: Yum Package Management, Cron Job Scheduling and Log Monitoring – Part 10

إدارة الحزم عبر Yum

لتثبيت حزمة مع كل التبعيات التي لم يتم تثبيتها بالفعل، ستستخدم:

# yum -y install package_name(s)

حيث تمثل اسم(أسماء) حزمة واحدة على الأقل حقيقية.

على سبيل المثال، لتثبيت httpd و mlocate (بالترتيب)، اكتب.

# yum -y install httpd mlocate

ملاحظة: أن الحرف y في المثال أعلاه يتجاوز الرسائل التأكيدية التي يقدمها yum قبل القيام بتنزيل وتثبيت البرامج المطلوبة فعليًا. يمكنك تركه إذا كنت تريد.

بشكل افتراضي، سيقوم yum بتثبيت الحزمة بالهندسة المعمارية التي تطابق هندسة نظام التشغيل، ما لم يتم تجاوز ذلك عن طريق إلحاق هندسة الحزمة باسمها.

على سبيل المثال، على نظام 64 بت، سيقوم yum install package بتثبيت الإصدار x86_64 من الحزمة، بينما yum install package.x86 (إذا كانت متاحة) ستقوم بتثبيت الإصدار بت 32.

سيكون هناك أوقات عندما ترغب في تثبيت حزمة ولكنك لا تعرف اسمها الدقيق. يمكن أن تبحث الخيارات البحث كله أو البحث في المستودعات الممكّنة حاليًا عن كلمة محددة في اسم الحزمة و/أو في وصفها على التوالي.

على سبيل المثال،

# yum search log

ستبحث في المستودعات المثبتة عن الحزم التي تحتوي على كلمة “log” في أسمائها وملخصاتها، بينما

# yum search all log

ستبحث عن نفس الكلمة في وصف الحزمة وحقول العنوان الرابط أيضًا.

بمجرد أن يعيد البحث قائمة بالحزم، قد ترغب في عرض مزيد من المعلومات حول بعضها قبل التثبيت. هنا يأتي دور الخيار المعلومات:

# yum info logwatch
Search Package Information

يمكنك التحقق بانتظام من التحديثات باستخدام الأمر التالي:

# yum check-update

سيعيد الأمر أعلاه جميع الحزم المثبتة التي يتوفر لها تحديث. في المثال الموضح في الصورة أدناه، فقط rhel-7-server-rpms تحتوي على تحديث متاح:

Check For Package Updates

بعد ذلك، يمكنك تحديث تلك الحزمة بمفردها باستخدام،

# yum update rhel-7-server-rpms

إذا كانت هناك عدة حزم يمكن تحديثها، ستحدث yum update جميعها في وقت واحد.

ماذا يحدث عندما تعرف اسم البرنامج القابل للتنفيذ، مثل ps2pdf، ولكنك لا تعرف أي حزمة توفره؟ يمكنك معرفة ذلك باستخدام الأمر yum whatprovides "*/[executable]":

# yum whatprovides “*/ps2pdf”
Find Package Belongs to Which Package

الآن، عندما يتعلق الأمر بإزالة حزمة، يمكنك القيام بذلك باستخدام yum remove package. سهل، أليس كذلك؟ هذا يظهر أن Yum هو مدير حزمة كامل وقوي.

# yum remove httpd

اقرأ أيضًا: 20 أمرًا لإدارة إدارة حزم RHEL 7 بواسطة Yum

Good Old Plain RPM

RPM (المعروف أيضًا بـRPM Package Manager، أو RedHat Package Manager في الأصل) يمكن استخدامه أيضًا لتثبيت أو تحديث الحزم عندما تأتي على شكل حزم .rpm منفصلة.

غالبًا ما يتم استخدامه مع علامات -Uvh للإشارة إلى أنه يجب تثبيت الحزمة إذا لم تكن موجودة بالفعل أو محاولة تحديثها إذا تم تثبيتها بالفعل (-U)، مع إنتاج إخراج مفصل (-v) وشريط تقدم بعلامات التجزئة (-h) أثناء تنفيذ العملية. على سبيل المثال،

# rpm -Uvh package.rpm

استخدام آخر شائع لأمر rpm هو إنتاج قائمة بالحزم المثبتة حاليًا بواسطة الأمر rpm -qa (اختصارًا لاستعلام الكل):

# rpm -qa
Query All RPM Packages

اقرأ أيضًا: 20 أمرًا لتثبيت الحزم في RHEL 7 باستخدام RPM

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

يتضمن نظام التشغيل Linux ونظم التشغيل المشابهة ليونكس أداة تسمى cron تتيح لك جدولة المهام (أي الأوامر أو النصوص البرمجية للقواعد الجوهرية) لتشغيلها بشكل دوري. يقوم Cron بفحص الدليل /var/spool/cron كل دقيقة للملفات التي تحمل اسماء الحسابات في ملف /etc/passwd.

عند تنفيذ الأوامر ، يتم إرسال أي إخراج إلى مالك ال crontab (أو إلى المستخدم المحدد في متغير البيئة MAILTO في /etc/crontab ، إذا كان موجودًا).

ملفات crontab (التي يتم إنشاؤها عن طريق كتابة crontab -e والضغط على Enter) لها التنسيق التالي:

Crontab Entries

بالتالي ، إذا أردنا تحديث قاعدة البيانات المحلية للملفات (التي يستخدمها locate للعثور على الملفات بالاسم أو النمط) كل يوم ثاني من الشهر في 2:15 صباحًا ، فإننا بحاجة إلى إضافة إدخال crontab التالي:

15 02 2 * * /bin/updatedb

يقرأ إدخال crontab أعلاه “تشغيل /bin/updatedb في اليوم الثاني من الشهر ، في كل شهر من السنة ، بغض النظر عن يوم الأسبوع ، في الساعة 2:15 صباحًا”. كما تخمن بالفعل ، يتم استخدام رمز النجمة كحرف وايلدكارد.

بعد إضافة وظيفة cron ، يمكنك رؤية أن الملف الذي يحمل اسم root تمت إضافته داخل /var/spool/cron ، كما ذكرنا سابقًا. يقوم ذلك الملف بسرد جميع المهام التي يجب أن يقوم بتشغيلها البرنامج النصي crond:

# ls -l /var/spool/cron
Check All Cron Jobs

في الصورة أعلاه ، يمكن عرض crontab الحالي للمستخدم إما باستخدام cat /var/spool/cron/root أو

# crontab -l

إذا كنت بحاجة إلى تشغيل مهمة بشكل أدق (على سبيل المثال ، مرتين في اليوم أو ثلاث مرات في كل شهر) ، يمكن أن يساعدك cron في القيام بذلك.

على سبيل المثال ، لتشغيل /my/script في الأول وال 15 من كل شهر وإرسال أي إخراج إلى /dev/null ، يمكنك إضافة اثنين من إدخالات crontab على النحو التالي:

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

بعد المثال السابق، يمكننا تشغيل /my/other/script في 1:30 صباحًا في اليوم الأول من الشهر كل ثلاثة أشهر:

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

ولكن عندما تحتاج إلى تكرار مهمة معينة كل ” س ” دقائق، ساعات، أيام، أو أشهر، يمكنك قسمة الموضع الصحيح على التردد المطلوب. إدخال سجل الوظيفة crontab التالي له نفس المعنى السابق:

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

أو ربما تحتاج إلى تشغيل وظيفة معينة بتردد ثابت أو بعد تشغيل النظام، على سبيل المثال. يمكنك استخدام أحد السلاسل التالية بدلاً من الحقول الخمسة للإشارة إلى الوقت الدقيق الذي ترغب في تشغيل وظيفتك فيه:

@reboot    	Run when the system boots.
@yearly    	Run once a year, same as 00 00 1 1 *.
@monthly   	Run once a month, same as 00 00 1 * *.
@weekly    	Run once a week, same as 00 00 * * 0.
@daily     	Run once a day, same as 00 00 * * *.
@hourly    	Run once an hour, same as 00 * * * *.

اقرأ أيضا: 11 أمرًا لجدولة وظائف كرون في RHEL 7

تحديد وفحص السجلات

توجد سجلات النظام (وتدويرها) داخل الدليل /var/log . وفقًا لمعيار تسلسل النظام الملفي في Linux، يحتوي هذا الدليل على ملفات سجل متنوعة، التي يتم كتابتها فيه أو في دليل فرعي مناسب (مثل audit ، httpd ، أو samba في الصورة أدناه) من قبل البرامج الخادمة المقابلة أثناء تشغيل النظام:

# ls /var/log
Linux Log Files Location

السجلات الأخرى المثيرة للاهتمام هي dmesg (تحتوي على جميع الرسائل من الحلقة الدائرية لنواة النظام) ، secure (تسجل محاولات الاتصال التي تتطلب مصادقة المستخدم) ، messages (رسائل النظام بأكمله) و wtmp (سجلات جميع تسجيل الدخول والخروج للمستخدمين).

السجلات مهمة جدًا لأنها تسمح لك بالتطلع إلى ما يحدث في نظامك في جميع الأوقات وما حدث في الماضي. إنها أداة لا تقدر بثمن لحل المشكلات ومراقبة خادم Linux ، وبالتالي غالبًا ما يتم استخدامها مع أمر tail -f command لعرض الأحداث ، في الوقت الحقيقي ، كما يحدث وتُسجل في السجل.

على سبيل المثال ، إذا كنت ترغب في عرض الأحداث المتعلقة بالنواة ، اكتب الأمر التالي:

# tail -f /var/log/dmesg

نفس الشيء إذا كنت ترغب في عرض وصول إلى خادم الويب الخاص بك:

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

الملخص

إذا كنت تعرف كيفية إدارة الحزم بكفاءة وجدولة المهام ، ومكان البحث عن المعلومات حول عملية النظام الحالية والسابقة ، فيمكنك أن تطمئن إلى أنك لن تواجه المفاجآت في كثير من الأحيان. آمل أن يكون هذا المقال قد ساعدك على تعلم أو تحديث معرفتك بتلك المهارات الأساسية.

لا تتردد في إرسال لنا رسالة باستخدام نموذج الاتصال أدناه إذا كان لديك أي أسئلة أو تعليقات.

Source:
https://www.tecmint.com/yum-package-management-cron-job-scheduling-monitoring-linux-logs/