⏱️
← العودة للأدلة

كيفية التحقق من صحة تعبيرات Cron: دليل خطوة بخطوة

· وسوم: cron-validation, cron-debugging, cron-syntax-check, schedule-validation, linux-crontab

كيفية التحقق من صحة تعبيرات Cron

تعبيرات Cron مضغوطة ولكن من السهل الوقوع في الخطأ فيها. يمكن أن تتسبب شرطة مائلة في غير مكانها أو قيمة خارج النطاق في تشغيل مهمة في الوقت الخطأ — أو عدم تشغيلها على الإطلاق. التحقق من صحة التعبيرات قبل النشر يوفر ساعات من تصحيح الأخطاء عندما تفشل مهمة حرجة بصمت.

أخطاء الصيغة الشائعة

القيم خارج النطاق

يقبل كل حقل نطاقاً محدداً. القيم خارج هذا النطاق غير صالحة.

# غير صالح: الدقيقة 60 خارج النطاق (0-59)
60 * * * *

# غير صالح: الساعة 24 خارج النطاق (0-23)
0 24 * * *

الحقول المفقودة

يتطلب تعبير cron خمسة حقول بالضبط. أربعة حقول غير صالحة، ستة حقول تتطلب صيغة موسعة.

# غير صالح: 4 حقول فقط (يوم الأسبوع مفقود)
0 0 * *

# غير صالح: صيغة 6 حقول بدون دعم البرنامج الخفي المناسب
0 0 * * * * /command.sh

احسب دائماً: الدقيقة، الساعة، يوم الشهر، الشهر، يوم الأسبوع.

قيم الخطوة غير الصحيحة

# غير صالح: لا يمكن استخدام الخطوة 0
*/0 * * * *

# غير صالح: الخطوة تتجاوز الحد الأقصى للحقل
*/61 * * * *

يجب أن تبدأ قيم الخطوة من 1 ولا تتجاوز الحد الأقصى للحقل.

كيفية التحقق من صحة تعبير Cron

الخطوة 1: التحليل إلى حقول

قسّم على المسافات وتحقق من وجود خمسة حقول بالضبط:

التعبير: 30 6 * * 1-5
الحقول:     الدقيقة=30، الساعة=6، اليوم=*، الشهر=*، يوم_الأسبوع=1-5

الخطوة 2: التحقق من صحة كل حقل

| الحقل | النطاق المسموح | يقبل الرموز الخاصة | |-------|--------------|-----------------------| | الدقيقة | 0-59 | * , - / | | الساعة | 0-23 | * , - / | | يوم الشهر | 1-31 | * , - / | | الشهر | 1-12 | * , - / | | يوم الأسبوع | 0-7 | * , - / |

الخطوة 3: التحقق من التعارضات

بعض التعبيرات صحيحة نحوياً ولكنها مفاجئة منطقياً:

# يعمل في اليوم 15 أو كل أحد — شرط OR
0 0 15 * 0

ينشئ يوم الشهر ويوم الأسبوع معاً شرط OR في cron القياسي. تعمل المهمة عندما يتطابق أي منهما.

الخطوة 4: معاينة الأوقات القادمة

قم بتوليد أوقات التنفيذ للتحقق بصرياً من جدولك:

التعبير: 0 2 * * 1
أوقات التنفيذ الخمسة القادمة:
  1. 2026-07-27 02:00:00 (الاثنين)
  2. 2026-08-03 02:00:00 (الاثنين)
  3. 2026-08-10 02:00:00 (الاثنين)

إذا كانت المعاينة لا تتطابق مع نيتك، قم بتصحيح التعبير قبل النشر.

تصحيح أخطاء المهام التي لا تعمل

التعبير الصالح الذي لا يعمل عادة ما يكون مشكلة في النظام:

  • الصلاحيات — يجب أن يمتلك السكربت صلاحية التنفيذ (chmod +x).
  • المسار — يستخدم cron مسار PATH محدود. استخدم دائماً المسارات المطلقة: /usr/local/bin/mybackup.sh وليس mybackup.sh.
  • البيئة — لا يقوم cron بتحميل ملفات تعريف shell. قم بتصدير المتغيرات داخل crontab أو السكربت نفسه.
  • التسجيل — أعد توجيه المخرجات لتأكيد التنفيذ:
0 6 * * * /path/to/script.sh >> /var/log/cron.log 2>&1

استخدام أداة التحقق

يوفر مدقق تعبيرات cron ثلاث وظائف:

  1. التحقق من الصيغة — تغذية راجعة فورية حول قيم الحقول والتنسيق.
  2. معاينة الجدول — عرض أوقات التنفيذ القادمة من التاريخ الحالي.
  3. التقويم البصري — أوقات التنفيذ المجدولة مرسومة على تقويم شهري.

لا ينبغي نشر أي تعبير cron دون معاينة أوقات التنفيذ القليلة القادمة. فحص لمدة ثلاثين ثانية يمنع فشل الجدولة الصامت.

كيفية التحقق من صحة تعبيرات Cron: دليل خطوة بخطوة - CoolTool