دليل المبتدئين لاستخدام Cron لجدولة المهام في نظام Linux

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

في بعض توزيعات Linux ، مثل Arch Linux ، لا يتم تثبيت cron افتراضيًا لأنه يستخدم systemd كبديل cron. أيضا ، هناك العديد من تطبيقات تنفيذ كرون ، ولكل منها طريقته الخاصة في تحرير / جدولة وظائف Cron. في هذا البرنامج التعليمي ، سنركز على cronie ، وهو الإعداد الافتراضي في معظم توزيعات Linux ، مثل Ubuntu.

cron schedule task featured DzTechs | دليل المبتدئين لاستخدام Cron لجدولة المهام في نظام Linux

عرض الإدخالات لكرون

عرض crontab يسمح لك بعرض المهام المجدولة التي ستعمل تحت حسابك.

crontab -l
cron tab list DzTechs | دليل المبتدئين لاستخدام Cron لجدولة المهام في نظام Linux

يمكنك أيضًا عرض المهام المجدولة للحساب الروت باستخدام sudo.

sudo crontab -l

تحرير إدخالات كرون

إذا لم تقم أبدًا بإعداد مهمة cron ، سيعرض عرض هذا الملف ملفًا فارغًا أو ملفًا يحتوي على تعليقات. لإضافة إدخال ، ستحتاج إلى فتح ملف crontab باستخدام الخيار -e.

crontab -e

ستتبع إدخالات Crontab دائمًا نفس البنية ، مما يسمح لك بفحص الإدخالات على أي جهاز بالإضافة إلى إنشائها بشكل برمجي.

البنية الأساسية لتعريف إدخال crontab هي:

m h d mon dow command

m = دقيقة بين 0 و 59

h = ساعة بين 0 و 23

d = يوم من الشهر بين 1 و 31

mon = شهر بين 1 و 12

dow = يوم من الأسبوع بين 0 و 6. صفر يوم الأحد.

Command = الأمر للتشغيل.

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

0 * * * * mysqlcheck --all-databases --check-only-changed --silent

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

42 1 * * * mysqlcheck --all-databases --check-only-changed --silent

بالإضافة إلى ذلك ، يمكن استخدام الفواصل لعناصر متعددة (مثل 1،3،5) ويمكن استخدام الواصلات للنطاقات. يشير الاستخدام الخاص للعلامة النجمية في مكان عنصر في التعبير إلى العنصر المطلوب تشغيله لكل قيم الحقل. (ستظهر علامة النجمة في حقل الساعة للتشغيل لكل ساعة من 0 – 23.) تشير علامة التصنيف (#) في السطر إلى تعليق (مما يعني أنه لن يتم تنفيذ سطر الشفرة).

وأخيرًا ، سيشير الخط المائل للأمام إلى قيمة خطوة. على سبيل المثال ، سيتم إدخال كل خمس دقائق كـ * / 5 (من لحظة حفظ crontab وإنشاء مهمة cron). إذا كنت تستخدم “5” فقط ، فسيتم تشغيل الإدخال فقط في علامة الخمس دقائق.

على سبيل المثال هذا:

34 3 * * 0 mysqlcheck --all-databases --check-only-changed --silent

34: دقيقة التشغيل بين 0 و 59

3: الساعة ، بين 0 و 23

*: تشير النجمتان الأوسطتان كل يوم (من 1 إلى 31) وكل شهر (من 1 إلى 12)

0: يشير الصفر النهائي إلى يوم الأحد

سيتم تشغيل هذه المهمة الساعة 3:34 صباحًا كل شهر ، كل أسبوع يوم الأحد.

رموز قصيرة

يسمح لك Crontab باستخدام بعض الرموز القصيرة لتسهيل قراءة إدخالات كرون الخاصة بك.

@reboot – تشغيل مرة واحدة ، عند بدء التشغيل

@yearly – تشغيل مرة في السنة ، “0 0 1 1 *”. </>

@annually – مثلyearly

@monthly – تشغيل مرة في الشهر ، “0 0 1 * *”

@weekly – تشغيل مرة واحدة في الأسبوع ، “0 0 * * 0”

@daily – ركض مرة واحدة في اليوم ، “0 0 * * *”

@midnight – نفسdaily

@hourly – تشغيل مرة واحدة كل ساعة ، “0 * * * *”

فمثلا:

@hourly mysqlcheck --all-databases --check-only-changed --silent

تحرير إدخالات cron كمستخدم آخر

هناك أوقات عندما تحتاج إلى إضافة crontab كروت. على سبيل المثال ، لتجديد شهادة Let is Encrypt SSL تلقائيًا ، يلزمك تشغيل نص التجديد بصلاحيات الروت. لتحرير crontab كروت ، ببساطة أضف sudo أمام الأمر:

sudo crontab -e

وبالمثل ، يمكنك جدولة مهمة cron كمستخدم آخر ، باستخدام علامة -u:

sudo crontab -u username -e

على سبيل المثال ، لتشغيل مهمة cron كمستخدم “www-data” ، استخدم الأمر التالي:

sudo crontab -u www-data -e

مراجعة نشاط كرون

على الرغم من أنك الآن مستعد لتشغيل أوامر أو برامج نصية محددة ، فقد تحتاج إلى التأكد من تشغيلها. المدمج في cron هو أنه بمجرد تشغيل الأمر ، فإنه سوف يرسل بريد إلكتروني إلى مالك cron. هذا يمكن تغييره مع متغير “MAILTO”.

cron mailto variable DzTechs | دليل المبتدئين لاستخدام Cron لجدولة المهام في نظام Linux

إضافة MAILTO=youremail@yourdomain.com سترسل جميع تقارير مهمة cron إلى بريد إلكتروني محدد. يمكن العثور على هذا المتغير في أعلى شاشة تحرير crontab. ومع ذلك ، إذا لم يكن موجودًا ، يمكنك إضافة المتغير ، وسيعمل كما هو متوقع.

يمكن فصل عناوين البريد الإلكتروني المتعددة بفاصلة. إذا كنت بحاجة إلى أمر مختلف عبر البريد الإلكتروني في مكان آخر ، يمكنك إضافة الأمر MAILTO مباشرة فوق الأمر. سيتم إرسال الأوامر بعد هذا mailto إلى العنوان الجديد. إذا تركت MAILTO = فارغة ، فسيتم إرسال الإخطارات إلى مالك إدخال cron.

بدلاً من ذلك ، يمكنك استخدام عامل إعادة التوجيه (>) لإرسال المخرجات عند الحاجة إليها.

34 3 * * 0 mysqlcheck --all-databases --check-only-changed --silent > /dev/null

سيؤدي ما سبق إلى إعادة توجيه الإخراج إلى “/ dev / null” ، والذي لا يرسل أي بريد إلكتروني ويتجاهل المخرجات.

إذا كنت تريد التأكد من تشغيل مهمة ولا تريد إرسال بريد إلكتروني ، فيمكنك أيضًا التحقق من سجلات cron. في معظم الأنظمة ، سيتطلب الوصول إلى سجلات cron أذونات المستخدمين المتميزين. يمكن العثور على سجل cron تحت “/ var / log”. سيعرض ملف cron أو syslog سجل إدخالات cron التي تم تنفيذها.

sudo grep crontab syslog
cron tab log DzTechs | دليل المبتدئين لاستخدام Cron لجدولة المهام في نظام Linux

يمكن تقييد Cron بشكل إضافي للسماح باستخدام محدد ، ويمكن إعداد الإعدادات الافتراضية. مع إضافة المواسير وإعادة التوجيه ، يمكن إعداد إدخالات cron للقيام بكل أنواع الأشياء. في نهاية المطاف ، cron هو أداة تعطيك القدرة على تشغيل المهام في وقت فراغك وضمان الصيانة الروتينية لأجزاء من النظام الخاص بك بعد الاتفاق الخاص بك.

DzTech

أنا مهندس دولة مع خبرة واسعة في مجالات البرمجة وإنشاء مواقع الويب وتحسين محركات البحث والكتابة التقنية. أنا شغوف بالتكنولوجيا وأكرس نفسي لتقديم معلومات عالية الجودة للجمهور. يُمكنني أن أصبح موردًا أكثر قيمة للمُستخدمين الذين يبحثون عن معلومات دقيقة وموثوقة حول مُراجعات المُنتجات والتطبيقات المُتخصصة في مُختلف المجالات. إنَّ التزامي الثابت بالجودة والدقة يضمن أنَّ المعلومات المُقدمة جديرة بالثقة ومفيدة للجمهور. السعي المُستمر للمعرفة يدفعني إلى مواكبة أحدث التطورات التكنولوجية، مما يضمن نقل الأفكار المُشتركة بطريقة واضحة وسهلة المنال.
زر الذهاب إلى الأعلى