الوثائق

البدء السريع + شرح وظائف كل قسم لكل جهاز (يُحدَّث باستمرار)

المهام المجدولة (Cron)

يشرح هذا المقال كيفية إدارة المهام المجدولة على الخادم الهدف.

أولًا: ما هو Cron

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

نبذة عن الوظيفة

عرض المهام المجدولة Cron على الخادم الهدف وإضافتها وحذفها.

حالات الاستخدام

  • نسخ قواعد البيانات احتياطيًا وتنظيف السجلات في أوقات محددة
  • تشغيل سكربتات المراقبة في أوقات محددة
  • إعادة تشغيل الخدمات وتحديث الشهادات في أوقات محددة

طريقة الاستخدام

ادخل إلى «لوحة إدارة النظام ← المهام المجدولة» في أحد الخوادم، لتطّلع على كل مهام Cron الحالية في ذلك الخادم.

إضافة مهمة

املأ تعبير Cron والأمر المطلوب تنفيذه:

الحقلالشرح
تعبير الوقتمن 5 أجزاء، مثل 0 3 * * * (الثالثة صباحًا كل يوم)
الأمرأمر shell المطلوب تنفيذه

صيغة تعبير Cron (دقيقة ساعة يوم شهر أسبوع):

* * * * *  command
│ │ │ │ │
│ │ │ │ └── يوم الأسبوع (0-7، و0/7 = الأحد)
│ │ │ └──── الشهر (1-12)
│ │ └────── يوم الشهر (1-31)
│ └──────── الساعة (0-23)
└────────── الدقيقة (0-59)

أمثلة شائعة:

التعبيرالمعنى
*/5 * * * *كل 5 دقائق
0 * * * *كل ساعة
0 3 * * *الثالثة صباحًا كل يوم
0 3 * * 1الثالثة صباحًا كل يوم اثنين
0 3 1 * *الثالثة صباحًا في أول يوم من كل شهر
0 3 * * 0الثالثة صباحًا كل يوم أحد
30 2 * * *الثانية والنصف صباحًا كل يوم

أمثلة أوامر عملية:

# نسخ قاعدة البيانات احتياطيًا في الثالثة صباحًا كل يوم (مثال)
0 3 * * * docker exec sshe-mysql mariadb-dump -uroot -p'<password>' dbname > /opt/backup/db-$(date +\%F).sql

# تنظيف الملفات المؤقتة كل 6 ساعات
0 */6 * * * find /tmp -type f -mtime +7 -delete

# إعادة تشغيل خدمة ما في الرابعة صباحًا كل يوم اثنين
0 4 * * 1 systemctl restart my-app

ملاحظات

1. تُنفَّذ مهام Cron بهوية المستخدم الحالي على الخادم الهدف، فتأكّد من أن هذا المستخدم يملك صلاحية تنفيذ الأمر.

2. يُنصح بكتابة المسارات المطلقة في الأوامر (بيئة Cron فقيرة بمتغيرات البيئة، لذا قد لا يجد المسار النسبي البرنامج المطلوب).

3. إذا استُخدم % داخل الأمر فيجب ترميزه بـ \% (لأن Cron يعامل % كحرف خاص).

4. حذف مهمة Cron يسري مفعوله فورًا.

5. تعديل مهام Cron على مستوى النظام (/etc/crontab) قد يلزم خارج اللوحة، فاللوحة تدير افتراضيًا crontab -l الخاص بالمستخدم الحالي.