إدارة Cron Jobs: إنشاء المهام المجدولة
إنشاء وإدارة المهام المجدولة في Linux باستخدام crontab: صياغة تعبيرات cron، أمثلة عملية، تسجيل المخرجات وتجنب الأخطاء الشائعة.
جدول المحتويات
إدارة Cron Jobs: إنشاء المهام المجدولة
Cron هو مجدول المهام في Linux الذي يشغّل الأوامر والسكريبتات تلقائياً في أوقات محددة أو على فترات منتظمة. إنه ضروري لأتمتة المهام المتكررة مثل النسخ الاحتياطي وتنظيف السجلات والتحقق من التحديثات.
خدمة cron مثبتة وتعمل افتراضياً على معظم توزيعات Linux. تحقق من حالتها بـ systemctl status cron أو systemctl status crond.
صياغة crontab
يتكون كل cron job من خمسة حقول زمنية والأمر المراد تنفيذه:
* * * * * /مسار/الأمر
│ │ │ │ │
│ │ │ │ └── يوم الأسبوع (0-7، 0 و7 = الأحد)
│ │ │ └──── الشهر (1-12)
│ │ └────── يوم الشهر (1-31)
│ └──────── الساعة (0-23)
└────────── الدقيقة (0-59)
الأحرف الخاصة
| الحرف | المعنى | مثال |
|---|---|---|
* | أي قيمة | * * * * * = كل دقيقة |
, | قيم متعددة | 1,15 * * * * = الدقيقة 1 و15 |
- | نطاق | 1-5 * * * * = الدقائق من 1 إلى 5 |
/ | خطوة | */5 * * * * = كل 5 دقائق |
أمثلة عملية على تعبيرات Cron
# تشغيل كل دقيقة
* * * * * /usr/bin/script.sh
# تشغيل في بداية كل ساعة
0 * * * * /usr/bin/script.sh
# تشغيل يومياً في 02:30
30 2 * * * /usr/bin/backup.sh
# تشغيل كل اثنين في 08:00
0 8 * * 1 /usr/bin/weekly-report.sh
# تشغيل في الأول من كل شهر منتصف الليل
0 0 1 * * /usr/bin/monthly-cleanup.sh
# تشغيل كل 5 دقائق
*/5 * * * * /usr/bin/check-service.sh
# تشغيل أيام العمل (الاثنين-الجمعة) في 09:00
0 9 * * 1-5 /usr/bin/workday-task.sh
# تشغيل كل 6 ساعات
0 */6 * * * /usr/bin/sync.sh
اختصارات خاصة
@reboot # مرة واحدة عند بدء تشغيل النظام
@yearly # مرة في السنة (0 0 1 1 *)
@monthly # مرة في الشهر (0 0 1 * *)
@weekly # مرة في الأسبوع (0 0 * * 0)
@daily # مرة في اليوم (0 0 * * *)
@hourly # مرة في الساعة (0 * * * *)
استخدام crontab
تحرير crontab
# تحرير crontab المستخدم الحالي
crontab -e
# تحرير crontab مستخدم محدد (يتطلب root)
crontab -u اسم_المستخدم -e
# عرض crontab الحالي
crontab -l
# حذف crontab (استخدم بحذر!)
crontab -r
الأمر crontab -r يحذف جميع مهام cron ولا يمكن التراجع عنه. احتفظ بنسخة احتياطية أولاً: crontab -l > crontab_backup.txt.
ملفات Cron على مستوى النظام
تستخدم مهام cron على مستوى النظام مجلدات /etc/cron*:
# هيكل المجلدات
/etc/crontab # ملف crontab الرئيسي للنظام
/etc/cron.d/ # ملفات cron للتطبيقات
/etc/cron.hourly/ # سكريبتات تعمل كل ساعة
/etc/cron.daily/ # سكريبتات تعمل يومياً
/etc/cron.weekly/ # سكريبتات تعمل أسبوعياً
/etc/cron.monthly/ # سكريبتات تعمل شهرياً
تسجيل مخرجات Cron
مراقبة ملفات السجل
# سجلات cron على Debian/Ubuntu
sudo tail -f /var/log/syslog | grep CRON
# على RHEL/CentOS
sudo tail -f /var/log/cron
# باستخدام journald
sudo journalctl -u cron -f
إعادة توجيه المخرجات إلى ملف
# إعادة توجيه stdout و stderr إلى ملف
30 2 * * * /usr/bin/backup.sh >> /var/log/backup.log 2>&1
# تسجيل الأخطاء فقط
30 2 * * * /usr/bin/backup.sh 2>> /var/log/backup-errors.log
# إخفاء جميع المخرجات
30 2 * * * /usr/bin/backup.sh > /dev/null 2>&1
اضبط logrotate لتدوير ملفات السجل حتى لا تنمو بلا حدود.
الأخطاء الشائعة وحلولها
1. مشاكل متغيرات البيئة
لا يرث cron متغيرات بيئة shell المستخدم. عرّف PATH والمتغيرات الأخرى صراحةً:
# أضف في بداية crontab
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
SHELL=/bin/bash
# أو استخدم المسارات الكاملة في الأوامر
30 2 * * * /usr/bin/python3 /home/user/script.py
2. صلاحية تنفيذ السكريبت
# منح صلاحية التنفيذ للسكريبت
chmod +x /home/user/backup.sh
# التحقق من الصلاحيات
ls -la /home/user/backup.sh
3. مشاكل مجلد العمل
# تحديد مجلد العمل صراحةً في مهمة cron
30 2 * * * cd /var/www/html && php artisan schedule:run
الخلاصة
Cron أحد الأدوات الأساسية في إدارة نظام Linux. مع الصياغة الصحيحة وإدارة متغيرات البيئة والتسجيل، يمكنك بناء أتمتة موثوقة. راجع مهامك بانتظام باستخدام crontab -l وراقب ملفات السجل للكشف المبكر عن المشاكل.
مقالات ذات صلة
الاتصال بخادم VDS عبر SSH: PuTTY والطرفية والمفاتيح
دليل شامل للاتصال بخادم Linux VDS عبر SSH: PuTTY، الطرفية، المصادقة بالمفتاح، إنشاء قاعدة تصفية Path Panel، تغيير المنفذ ونصائح الأمان الأساسية.
الاتصال بـ Windows VDS عبر RDP: دليل شامل للمبتدئين
دليل خطوة بخطوة للاتصال بـ Windows Server VDS عبر RDP: الإعداد الكامل، تفعيل NLA للأمان، إنشاء قاعدة تصفية Path Panel واستكشاف الأخطاء وإصلاحها.
تغيير نظام تشغيل خادم VDS: دليل إعادة التثبيت خطوة بخطوة
تغيير نظام تشغيل خادم VDS عبر لوحة REXE: نصائح النسخ الاحتياطي قبل التثبيت، توزيعات Linux المدعومة وإصدارات Windows Server المتاحة للتثبيت الآن.