صيغة تعبيرات Cron: دليل شامل مع أمثلة
صيغة تعبيرات Cron
Cron هو مجدول المهام القياسي على الأنظمة المشابهة لـ Unix. كل تعبير cron يحدد جدولاً زمنياً في سلسلة نصية مضغوطة تحدد متى يجب تشغيل أمر ما. فهم الصيغة أمر ضروري لأتمتة النسخ الاحتياطية وتدوير السجلات ومهام الصيانة.
تنسيق الحقول الخمسة
يتكون تعبير cron القياسي من خمسة حقول مفصولة بمسافات:
* * * * *
| | | | |
| | | | +----- يوم الأسبوع (0-7، 0 و 7 = الأحد)
| | | +------- الشهر (1-12)
| | +--------- يوم الشهر (1-31)
| +----------- الساعة (0-23)
+------------- الدقيقة (0-59)
تفاصيل الحقول
| الحقل | النطاق | الرموز الخاصة | مثال |
|-------|-------|-------------------|---------|
| الدقيقة | 0-59 | , - * / | 30 = عند الدقيقة 30 |
| الساعة | 0-23 | , - * / | 6 = عند الساعة 6 صباحاً |
| يوم الشهر | 1-31 | , - * / | 15 = في اليوم 15 |
| الشهر | 1-12 | , - * / | 6 = في يونيو |
| يوم الأسبوع | 0-7 | , - * / | 0 = يوم الأحد |
تتحكم الدقيقة في دقيقة التنفيذ بالضبط: 30 * * * * يعمل عند الدقيقة 30 من كل ساعة. تحدد الساعة وقت اليوم: 0 6 * * * يعمل عند 6:00 صباحاً يومياً. يقيد يوم الشهر بتواريخ تقويمية محددة: 0 0 15 * * يعمل في اليوم 15 من كل شهر عند منتصف الليل. يقيد الشهر التنفيذ بأشهر محددة: 0 0 1 6 * يعمل في 1 يونيو. يتحكم يوم الأسبوع بأيام العمل: 0 8 * * 1-5 يعمل عند 8 صباحاً من الاثنين إلى الجمعة.
مهم: الأيام 29-31 تعمل فقط في الأشهر التي تحتوي على تلك التواريخ. في الأشهر الأقصر، يتم تخطي هذه القيم بصمت.
الرموز الخاصة
| الرمز | الاسم | الغرض | مثال |
|------|------|---------|---------|
| * | علامة النجمة | جميع القيم الممكنة | * في الدقيقة = كل دقيقة |
| , | الفاصلة | قائمة القيم | 1,15,30 = الدقائق 1، 15، 30 |
| - | الشرطة | نطاق | 9-17 = الساعات من 9 إلى 17 |
| / | الشرطة المائلة | قيم الخطوة | */5 = كل 5 دقائق |
قيم الخطوة باستخدام الشرطة المائلة
تعبر الشرطة المائلة عن "كل N من الوحدات":
# كل 5 دقائق
*/5 * * * *
# كل ساعتين
0 */2 * * *
# كل 15 دقيقة خلال ساعات العمل
*/15 9-17 * * *
أنماط جداول Cron الشائعة
| الجدول | التعبير | الوصف |
|----------|------------|-------------|
| كل دقيقة | * * * * * | يعمل 1,440 مرة في اليوم |
| كل 5 دقائق | */5 * * * * | فحوصات الصحة، المراقبة |
| كل ساعة | 0 * * * * | رأس كل ساعة |
| مرتين يومياً | 0 6,18 * * * | 6 صباحاً و 6 مساءً |
| يومياً عند منتصف الليل | 0 0 * * * | الصيانة الكلاسيكية |
| أسبوعياً يوم الأحد | 0 0 * * 0 | الصيانة الأسبوعية |
| الأول من الشهر | 0 0 1 * * | التقارير الشهرية |
| أيام العمل 9 صباحاً | 0 9 * * 1-5 | بداية ساعات العمل |
الاختصارات غير القياسية
تدعم بعض تطبيقات cron اختصارات مسماة: @yearly (1 يناير)، @monthly (الأول من الشهر)، @weekly (الأحد)، @daily (منتصف الليل)، @hourly، و @reboot (يعمل مرة واحدة عند بدء تشغيل النظام). مدعومة من قبل Vixie cron و cronie و systemd timers.
الأخطاء الشائعة
- تعيين كل من يوم الشهر ويوم الأسبوع معاً ينشئ شرط OR — تعمل المهمة عندما يتطابق أي منهما، وهو نادراً ما يكون المقصود.
- يستخدم Cron المنطقة الزمنية للنظام. قد تعمل المهام القريبة من انتقالات التوقيت الصيفي مرتين أو لا تعمل على الإطلاق.
- احسب دائماً خمسة حقول. أربعة حقول غير صالحة؛ ستة حقول تتطلب صيغة cron الموسعة.
اختبر تعبيرات Cron الخاصة بك
استخدم مدقق تعبيرات cron للتحقق من الصيغة، ومعاينة أوقات التنفيذ القادمة، واكتشاف الأخطاء قبل أن تؤثر على بيئة الإنتاج. فحص التحقق لمدة ثلاثين ثانية يمنع فشل الجدولة الصامت.