تعبير cron يحدّد الوقت، وcrontab يربطه بالأمر
تُستخدم cron لتشغيل أوامر متكررة على Linux. في ملف crontab الخاص بالمستخدم، تسبق خمسة حقول زمنية الأمر المطلوب تنفيذه. التعبير وحده لا يثبت سكربتًا ولا يضيف مهمة إلى الخادم؛ إنه يحدّد متى يبدأ التنفيذ فقط.
عند إعداد نسخ احتياطي أو تنظيف سجلات أو استيراد بيانات، ابدأ بالموعد المناسب ثم راجع النتائج التالية. تساعد هذه المراجعة على كشف الخلط بين يوم الشهر ويوم الأسبوع قبل اعتماد الجدول. تظل صلاحيات السكربت ونجاحه مسؤولية بيئة التشغيل.
إنشاء جدول مناسب للمهمة
- اختر جدولًا جاهزًا ثم عدّل الحقول المطلوبة.
- استخدم قائمة لعدة قيم منفصلة، أو نطاقًا لقيم متتابعة.
- للتحقق من إعداد موجود، الصق الحقول الزمنية الخمسة دون الأمر الذي يليها.
- قارن المواعيد المعروضة بتوقيت UTC بإعدادات الخادم، ثم انسخ التعبير.
ترتيب حقول cron والرموز المقبولة
تُقرأ الشفرة من اليسار إلى اليمين: الدقيقة، الساعة، يوم الشهر، الشهر، يوم الأسبوع. تفصل المسافات بين الحقول. الأحد هو 0 أو 7. استخدم الأرقام 0–9 والأسماء JAN–DEC وSUN–SAT داخل التعبير، لا أسماء الأيام العربية. تواريخ المعاينة ميلادية.
| الحقل | القيم |
|---|---|
| الدقيقة | 0–59 |
| الساعة | 0–23 |
| اليوم من الشهر | 1–31 |
| الشهر | 1–12 |
| اليوم من الأسبوع | 0–7 |
- النجمة * تعني جميع قيم الحقل.
- الفاصلة , تجمع قيمًا منفصلة مثل 0,30.
- الشرطة - تحدد نطاقًا شاملًا للطرفين مثل 1-5.
- الشرطة المائلة / تحدد خطوة داخل الحقل مثل
*/15.
أمثلة cron للمهام اليومية والأسبوعية
الأوقات الواردة تتبع منطقة المجدول الزمنية. النطاق من الاثنين إلى الجمعة يعبّر عن هذه الأيام تحديدًا، وليس عن أسبوع العمل المحلي أو أيام العطلات في بلد معين.
| التعبير | الموعد |
|---|---|
*/5 * * * * | كل خمس دقائق |
30 2 * * * | يوميًا عند 02:30 |
0 9 * * 0-4 | من الأحد إلى الخميس عند 09:00 |
0 0 * * 0 | كل أحد عند منتصف الليل |
0 0 1 * * | أول يوم من كل شهر |
0 0 29 2 * | 29 فبراير في السنوات الكبيسة |
إضافة المهمة إلى خادم Linux
يفتح الأمر crontab -e جدول المستخدم الحالي. يشغّل المثال التالي سكربت النسخ الاحتياطي يوميًا عند 02:30 بحسب المنطقة الزمنية التي تعتمدها خدمة cron.
استخدم مسارًا كاملًا للسكربت وتحقق من صلاحية تنفيذه ومن عمل خدمة cron. لا تعني صحة التواريخ في المعاينة أن الأمر قد نُفّذ أو أن نسخة احتياطية قد أُنشئت.
30 2 * * * /usr/local/bin/backup.shأسئلة شائعة عن جدولة مهام cron
هل تعرض الأداة توقيت بلدي؟
لا، تستخدم المعاينة UTC دائمًا، ولا تستنتج التوقيت من اللغة أو الموقع. التعبير لا يتضمن منطقة زمنية؛ يحددها المجدول. طابق إعداد الخادم مع الموعد المطلوب قبل تشغيل المهمة.
هل الأرقام العربية مقبولة داخل التعبير؟
استخدم الأرقام اللاتينية 0–9 والرموز القياسية داخل التعبير. تظل الشفرة من اليسار إلى اليمين حتى في الواجهة العربية. كما أن مواعيد المعاينة تتبع التقويم الميلادي.
ماذا يحدث عند تحديد يوم الشهر ويوم الأسبوع معًا؟
إذا كان الحقلان مقيّدين يكفي تطابق أحدهما. مثلًا 0 9 1 * MON يعمل في اليوم الأول من الشهر أو يوم الاثنين عند 09:00. إذا بدأ أحد الحقلين بالنجمة * فيجب تحقق شرطي اليوم معًا.
هل تدعم الأداة الثواني أو Quartz؟
تدعم خمسة حقول وفق صيغة Linux. الثواني والرموز ? وL وW و# والاختصار @reboot غير مدعومة. يمكن تحويل @hourly و@daily و@weekly و@monthly و@yearly إلى الصيغة العادية.
لماذا لا تظهر خمسة مواعيد؟
تبحث المعاينة في السنوات الثماني المقبلة. لا يوجد 31 فبراير، وقد يظهر 29 فبراير أقل من خمس مرات. كذلك فإن */5 في الدقائق يطابق 0 و5 و10 وما بعدها من كل ساعة، لا خمس دقائق بعد الحفظ.
