تخيل أنك مطالب يومياً بالدخول إلى السيرفر في الساعة الثالثة فجراً لأخذ نسخة احتياطية من قاعدة البيانات، أو تفريغ سجلات الأخطاء (Logs) التي تلتهم مساحة القرص. القيام بهذه المهام يدوياً ليس مملاً ومتعباً فحسب، بل هو وصفة كارثية للنسيان والخطأ البشري.
في عالم لينكس، تعتبر أداة Cron هي المساعد الشخصي الأقوى لك؛ فهي تتيح لك جدولة وإطلاق المهام والسكريبتات لتعمل تلقائياً في الخلفية في أي وقت تحدده (يومياً، أسبوعياً، أو حتى كل دقيقة). في هذا المقال، سنبسط لك مفهوم Cron Jobs وكيف تستخدمها لأتمتة مهامك اليومية بكفاءة.
ما هو الـ Cron والـ Crontab؟
Cron هو برنامج خلفية (Daemon) يعمل باستمرار في أنظمة لينكس، ويقوم بفحص ملفات الجدولة كل دقيقة للتحقق مما إذا كان هناك أمر أو سكريبت تم تحديد موعد إطلاقه الآن.
أما Crontab (إختصار لـ Cron Table) فهو الملف النصي الذي يحتوي على قائمة المهام المجدولة وأوقات تشغيلها. كل مستخدم في نظام لينكس يمتلك ملف crontab خاصاً به وبصلاحياته.
قواعد كتابة وقت الجدولة (Crontab Syntax)
لكتابة أي مهمة مجدولة، يجب أن تبدأ بتحديد الوقت باستخدام خمس نجوم متتالية متبوعة بالأمر المراد تنفيذه:
* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └─ يوم من الأسبوع (0 - 6) (الأحد = 0)
│ │ │ └── الشهر (1 - 12)
│ │ └─── يوم من الشهر (1 - 31)
│ └──── الساعة (0 - 23)
└───── الدقيقة (0 - 59)
أمثلة عملية شائعة:
0 0 * * *— تشغيل المهمة يومياً عند منتصف الليل تماماً.*/5 * * * *— تشغيل المهمة كل 5 دقائق.0 12 * * 5— تشغيل المهمة كل يوم جمعة في الساعة 12 ظهراً.0 3 1 * *— تشغيل المهمة في الأول من كل شهر في الساعة 3 فجراً.
مثال عملي: أتمتة سكريبت نسخ احتياطي (Backup Script)
سنقوم بإنشاء سكريبت بسيط يضغط مجلد ملفات الويب ويحفظه بتاريخ اليوم، ثم نجدوله ليعمل تلقائياً.
الخطوة 1: إنشاء سكريبت النسخ الاحتياطي:
mkdir -p /home/user/backups
nano /home/user/backup.sh
أضف المحتوى التالي للسكريبت:
#!/bin/bash
# ضغط ملفات الويب وإضافة التاريخ لاسم الملف
tar -czf /home/user/backups/web_backup_$(date +%F).tar.gz /var/www/html
احفظ الملف واجعله قابلاً للتنفيذ:
chmod +x /home/user/backup.sh
الخطوة 2: إضافة السكريبت لجدول الصيانة (Crontab):
افتح ملف الجدولة الخاص بك:
crontab -e
أضف السطر التالي في نهاية الملف لجدولة تشغيل السكريبت يومياً في الساعة 2 فجراً:
0 2 * * * /home/user/backup.sh
احفظ الملف واخرج. سترى رسالة تؤكد تثبيت الملف الجديد (crontab: installing new crontab).
أفضل ممارسات إدارة وتأمين Cron Jobs
- استخدم المسارات المطلقة (Absolute Paths): بيئة عمل Cron لا ترث متغيرات النظام (Environment Variables) بالكامل. لذا اكتب دائماً المسار الكامل للأدوات مثل
/usr/bin/tarبدلاً منtarلتجنب فشل المهمة. - حفظ وحفظ سجلات المخرجات (Logging): افتراضياً، يرسل cron المخرجات والأخطاء للبريد الداخلي. يفضل توجيه المخرجات لملف سجل خارجي لمراجعة الأخطاء بسهولة:
0 2 * * * /home/user/backup.sh >> /home/user/backup.log 2>&1. - راقب الصلاحيات: تأكد أن السكريبتات المجدولة تحت مستخدم محدد لا تمتلك صلاحيات أكثر مما تحتاج، لحماية السيرفر من الاختراق في حال تعديل السكريبت بشكل غير مصرح به.
خاتمة
الجدولة التلقائية هي حجر الأساس لإدارة خوادم لينكس باحترافية. إن توظيف أداة Cron Jobs يضمن استمرارية صيانة خادمك، وأخذ نسخك الاحتياطية بانتظام، دون أي مجهود بشري متكرر.
نصيحة عملية: قم بإعداد مهمة مجدولة بسيطة اليوم لتنظيف مجلد التخزين المؤقت (/tmp) كل أسبوع وتجربة أتمتة خادمك بنفسك.
اترك تعليقاً
يجب أنت تكون مسجل الدخول لتضيف تعليقاً.