ما هي محلل تعبيرات Cron؟
Cron هو صيغة الجدولة القياسية المستخدمة في مهام cron الخاصة بأنظمة Unix/Linux، وخطوط أنابيب CI/CD، ومهام Kubernetes CronJob، وعدد لا يُحصى من مجدولات المهام. يجمع تعبير cron جدولاً متكرراً كاملاً في خمسة حقول مدمجة، مما يمنحه قوة لكنه يصعب قراءته بنظرة سريعة — فهل "0 */4 * * 1-5" يعني كل 4 ساعات في أيام العمل أم شيئاً آخر تماماً؟
يقوم هذا المحلل بتفكيك تعبير cron حقلاً بحقل وترجمته إلى جملة واضحة، حتى تتمكن من التحقق من صحة الجدول قبل نشره، أو فهم جدول كتبه شخص آخر بسرعة دون الحاجة للرجوع إلى جدول مرجعي لصيغة cron.
متى تستخدم هذه الآلة الحاسبة
- عند التحقق من جدول cron قبل نشر مهمة مجدولة أو خط أنابيب CI/CD
- عند تشخيص سبب تشغيل مهمة مجدولة (أو عدم تشغيلها) في وقت غير متوقع
- عند مراجعة Kubernetes CronJob أو جدول GitHub Actions كتبه زميل في الفريق
- عند تعلم صيغة cron لدورة في إدارة الأنظمة أو شهادة DevOps
- عند تدقيق إدخالات crontab الحالية أثناء ترحيل خادم
- عند تصميم نمط جدولة معقدة يجمع بين قيود زمنية متعددة
الخطوات:
- الصق أو اكتب تعبير cron مكوّنًا من 5 حقول في حقل الإدخال.
- شاهد كل حقل مفصّلًا على حدة مع معناه.
- اقرأ الترجمة البسيطة للجدول الكامل.
- جرّب زر إعداد مسبق لجداول شائعة مثل "كل ساعة" أو "أيام العمل الساعة 9 صباحًا".
الصيغة
┌───────────── الدقيقة (0-59)
│ ┌───────────── الساعة (0-23)
│ │ ┌───────────── يوم الشهر (1-31)
│ │ │ ┌───────────── الشهر (1-12)
│ │ │ │ ┌───────────── يوم الأسبوع (0-6، الأحد=0)
│ │ │ │ │
* * * * *
حالات الاستخدام
- التحقق من جدول cron قبل نشر مهمة مجدولة أو خط أنابيب CI/CD
- فهم مورد CronJob في Kubernetes أو دالة مجدولة بلا خادم كتبها زميل
- تشخيص سبب تشغيل مهمة مجدولة (أو عدم تشغيلها) في وقت غير متوقع
- تعلّم صيغة cron لمادة دراسية في إدارة الأنظمة أو DevOps
- مراجعة إدخالات crontab الحالية أثناء ترحيل خادم
الفوائد الرئيسية
- يترجم صيغة cron الغامضة فورًا إلى لغة بسيطة
- يفصّل كل حقل من الحقول الخمسة على حدة لمزيد من الوضوح
- إعدادات مسبقة بنقرة واحدة لأنماط الجدولة الأكثر شيوعًا
- لا حاجة للتسجيل، ويعمل بالكامل داخل متصفحك
نصائح احترافية
- عند الشك، اختبر أولًا بوقت قريب جدًا للتأكد من أن الجدول يعمل كما هو متوقع
- استخدم النطاقات (1-5) بدلًا من سرد كل قيمة بفواصل عند الإمكان، لتحسين قابلية القراءة
- تحقق من إعداد المنطقة الزمنية لخادمك أو مجدولك — فهو المصدر الأكثر شيوعًا لأخطاء cron المتعلقة بـ "التوقيت الخاطئ"
- لأي شيء أكثر تعقيدًا من جدول يومي/أسبوعي بسيط، اكتب الوصف باللغة البسيطة وقارنه بنيتك قبل النشر
الأخطاء الشائعة التي يجب تجنبها
- نسيان أن يوم الشهر ويوم الأسبوع يُجمعان بـ OR وليس AND
- الخلط بين ترقيم يوم الأسبوع الذي يبدأ من 0 (0=الأحد) واصطلاحات أنظمة أخرى تبدأ من 1
- افتراض أن */7 في حقل يوم الشهر تعني "كل 7 أيام" — بل تعني فعليًا الأيام 1، 8، 15، 22، 29، مع إعادة البدء كل شهر
- نسيان أن معظم تطبيقات cron تعمل بالمنطقة الزمنية المحلية للخادم، وليس بتوقيت UTC أو منطقة زمن المستخدم
شرح المصطلحات الأساسية
- Cron: مجدول مهام قائم على الوقت يُستخدم في أنظمة التشغيل الشبيهة بـ Unix
- Crontab: الملف أو الأمر المستخدم لتعريف قائمة من مهام cron
- قيمة الخطوة (Step value): صيغة "/N" التي تعني "كل N وحدات" بدءًا من الحد الأدنى لقيمة الحقل
- CronJob: المورد الأصلي في Kubernetes لتشغيل المهام المجدولة بتعبيرات cron
مفاهيم ذات صلة
- حاسبة الفرق في الوقت: حساب المدة بين تاريخين ووقتين
- حاسبة الأيام حتى: عد الأيام حتى تاريخ محدد
- محول الطوابع الزمنية: التحويل بين الطوابع الزمنية Unix والتواريخ
- حاسبة تداخل المناطق الزمنية: العثور على تداخل ساعات العمل عبر المناطق الزمنية
- منسق JSON: تنسيق والتحقق من بيانات JSON
مثال
يُفَكَّك التعبير "0 9 * * 1-5" إلى: الدقيقة=0، الساعة=9، كل يوم من الشهر، كل شهر، من الاثنين إلى الجمعة — أي "الساعة 09:00، من الاثنين إلى الجمعة".
تفسير نتائجك
يقوم المحلل بتفكيك تعبير cron المكوّن من 5 حقول إلى مكوناته الفردية وترجمة كل منها إلى لغة بسيطة. الحقول الخمسة هي: الدقيقة (0-59)، الساعة (0-23)، يوم الشهر (1-31)، الشهر (1-12)، ويوم الأسبوع (0-6، حيث 0 هو الأحد). تُشغَّل المهمة عندما تتطابق جميع الحقول الخمسة مع الوقت الحالي — وهو منطق AND بين الحقول.
انتبه بشكل خاص للتفاعل بين يوم الشهر ويوم الأسبوع، الذي يستخدم منطق OR (وليس AND). مهمة مجدولة بيوم 15 ويوم أسبوع 5 ستعمل في كلا الحالتين: اليوم الخامس عشر من كل شهر وكل يوم جمعة — وليس فقط أيام الجمعة التي تحل في الخامس عشر. هذا مصدر شائع لأخطاء الجدولة.

