1. ما هو Cron؟
Cron هو برنامج جدولة مهام يعتمد على الوقت في أنظمة Linux وUnix. يُستخدم بشكل أساسي من قبل مسؤولي النظام والمطورين لأتمتة المهام التي يجب تشغيلها بشكل دوري. يتم تثبيت Cron بشكل افتراضي في Ubuntu، وهو يُستخدم في إدارة الخوادم، والنسخ الاحتياطي، وتشغيل البرامج النصية بشكل منتظم.
كيف يعمل Cron؟
يعمل Cron عبر ملف يسمى “crontab”، حيث يمكن تحديد الأوامر التي سيتم تنفيذها في أوقات وفواصل زمنية محددة. يحتوي crontab على خمسة حقول يمكن تخصيصها لضبط توقيت تنفيذ المهام.
- الدقائق (0-59)
- الساعات (0-23)
- اليوم (1-31)
- الشهر (1-12)
- يوم الأسبوع (0-7، حيث 0 أو 7 يعني يوم الأحد)
على سبيل المثال، إذا كنت ترغب في تشغيل عملية نسخ احتياطي يوميًا في الساعة 5 صباحًا، يمكنك إضافة السطر التالي إلى crontab:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
بهذه الطريقة، يمكن أتمتة المهام الدورية بسهولة باستخدام Cron.
من يجب أن يستخدم Cron؟
يعد Cron أداة أساسية لمسؤولي النظام، وكذلك المطورين الذين يرغبون في تحسين كفاءة مهامهم اليومية، أو لأي شخص يحتاج إلى تشغيل البرامج النصية بانتظام على الخادم.

2. إعداد مهام Cron
كيفية تعديل Crontab
لإعداد مهمة Cron، يجب أولًا تعديل ملف “crontab” الخاص بالمستخدم. في Ubuntu، يمكن فتح ملف crontab باستخدام الأمر:
crontab -e
البنية الأساسية لأوامر Cron
يتكون crontab من حقول تحدد توقيت تنفيذ الأوامر، بالإضافة إلى الأمر الذي سيتم تشغيله. فيما يلي التنسيق العام لأمر Cron:
دقيقة ساعة يوم شهر يوم_الأسبوع الأمر
على سبيل المثال، لتنفيذ عملية نسخ احتياطي يوميًا في الساعة 5 صباحًا، يمكن استخدام الأمر التالي:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
حفظ وتأكيد إعدادات Crontab
بعد إضافة مهمة إلى crontab، يتم تطبيق التغييرات عند حفظ الملف. للتحقق من المهام المجدولة حاليًا، يمكن استخدام الأمر التالي:
crontab -l
3. جدولة متقدمة لمهام Cron
تشغيل المهام بفواصل زمنية مخصصة
لتشغيل المهام كل دقيقة أو كل 5 دقائق، يمكن استخدام التكوينات التالية:
- تشغيل كل دقيقة:
* * * * * /path/to/script.sh
- تشغيل كل 5 دقائق:
*/5 * * * * /path/to/script.sh
تشغيل المهام في أيام أو أوقات معينة
لتشغيل المهام في أيام أو أوقات محددة، يمكن ضبط حقل يوم الأسبوع. على سبيل المثال، لتنفيذ مهمة كل يوم اثنين في الساعة 2:15 صباحًا:
15 2 * * 1 /path/to/script.sh
4. معالجة الأخطاء واستكشاف الأخطاء وإصلاحها
المشاكل الشائعة في مهام Cron وحلولها
المهمة لا تعمل
إذا لم تعمل مهمة Cron كما هو متوقع، تحقق من النقاط التالية:
- التحقق من الصلاحيات: تأكد من أن الملف أو البرنامج النصي قابل للتنفيذ.
- استخدام المسار الكامل: بيئة Cron قد لا تحتوي على نفس متغيرات البيئة الافتراضية، لذا يُفضل تحديد المسار الكامل للأوامر.
/usr/bin/python3 /path/to/script.py
التحقق من السجلات
لمعرفة الأخطاء التي قد تواجهها مهام Cron، تحقق من السجلات باستخدام الأمر التالي:
grep CRON /var/log/syslog
5. اعتبارات الأمان
التحكم في وصول المستخدم
للحد من المستخدمين الذين يمكنهم تشغيل مهام Cron، يمكن استخدام الملفات /etc/cron.allow
و/etc/cron.deny
. عند إدراج المستخدمين في /etc/cron.allow
، فقط هؤلاء المستخدمين سيكون لديهم القدرة على جدولة مهام Cron.
echo "user_name" >> /etc/cron.allow
أمان تسجيل الدخول ومهام Cron
عند تنفيذ مهام Cron التي تتطلب المصادقة، من الضروري إعداد مفاتيح SSH والتعامل مع كلمات المرور بشكل آمن لتجنب أخطاء المصادقة.
6. استخدام Anacron للمهام ذات التكرار غير المنتظم
ما هو Anacron؟
Anacron هو برنامج جدولة للمهام الدورية، ولكنه يختلف عن Cron في أنه يمكنه تشغيل المهام التي فات وقتها عند إعادة تشغيل النظام. هذا يجعله مثاليًا لأجهزة الكمبيوتر المحمولة أو أنظمة سطح المكتب التي لا تعمل باستمرار.
7. أمثلة عملية على استخدام Cron
أتمتة النسخ الاحتياطي
إليك مثالًا على مهمة Cron لأتمتة النسخ الاحتياطي اليومي للدليل /home/
، مع تضمين التاريخ في اسم الملف.
0 2 * * * tar -zcf /var/backups/home_backup_$(date +%Y-%m-%d).tgz /home/
8. الخلاصة
باستخدام Cron وAnacron، يمكن أتمتة المهام الدورية بسهولة، مما يحسن موثوقية تشغيل النظام. عند استخدامهما بشكل صحيح، يمكن تقليل تكاليف التشغيل وتحسين أتمتة مهام الصيانة المهمة. جرب تنفيذ هذه الأدوات في نظامك واستمتع بكفاءتها.