أساسيات تعبيرات Cron: فهم الحقول الخمسة
تفكيك بلغة واضحة لصيغة cron القياسية يمكنك تطبيقه فوراً
جرّب شارح Cronلماذا تربك تعبيرات Cron حتى المطورين ذوي الخبرة
معظم أخطاء cron تبدأ قبل النشر، عندما تتباعد نية الجدول والصيغة. تريد أن تعمل مهمة كل يوم عمل في الساعة 8 صباحاً، لكن قيمة في غير مكانها تنقلها إلى كل ساعة أو كل يوم في الشهر. السبب الجذري هو نفسه دائماً تقريباً: الحقول الخمسة لتعبير cron مختصرة وموقعية ولا تسامح.
تعبير cron القياسي هو سطر واحد من خمسة حقول مفصولة بمسافات. كل حقل يتطابق مع وحدة زمنية، ومعاً تحدد جدولاً متكرراً. لا توجد تسميات ولا كلمات مفتاحية افتراضياً ولا مجال للغموض بمجرد أن يقرأ المجدوِل السطر.
يشرح هذا المقال بنية صيغة cron ذات 5 حقول بلغة واضحة. ستتعلم ما يتحكم به كل حقل، وكيف تعمل الرموز الشائعة، وأين تحدث القراءات الخاطئة النموذجية. يمكن التحقق من كل مثال فوراً في شارح Cron في Cronwise، الذي يمنحك تفكيكاً بلغة واضحة ومعاينة أوقات التشغيل القادمة مع مراعاة المنطقة الزمنية لأي تعبير تدخله.
سواء كنت تكتب أول إدخال crontab أو تراجع جدولاً كتبه شخص آخر، فهم هذه الحقول الخمسة هو الأساس لكل سير عمل cron يليه.
الحقول الخمسة: ما يتحكم به كل منها
يتبع كل تعبير cron القياسي نفس الصيغة الموقعية. من اليسار إلى اليمين، الحقول الخمسة هي:
| الموقع | الحقل | القيم المسموحة | الوصف |
|---|---|---|---|
| 1 | الدقيقة | 0 – 59 | الدقيقة من الساعة التي تعمل فيها المهمة |
| 2 | الساعة | 0 – 23 | ساعة اليوم (صيغة 24 ساعة) |
| 3 | يوم الشهر | 1 – 31 | اليوم التقويمي |
| 4 | الشهر | 1 – 12 | شهر السنة |
| 5 | يوم الأسبوع | 0 – 7 | يوم الأسبوع (0 و7 كلاهما يمثلان الأحد) |
مثال ملموس يوضح الربط. التعبير 30 8 * * 1-5 يعني: في الدقيقة 30، من الساعة 8، في كل يوم من الشهر، في كل شهر، لكن فقط في أيام العمل من الاثنين إلى الجمعة. بلغة واضحة: 8:30 صباحاً، من الاثنين إلى الجمعة.
النجمة (*) هي حرف بدل يتطابق مع كل قيمة مسموحة لذلك الحقل. عندما تراها، اقرأها كـ "كل." لذا * * * * * تعني كل دقيقة من كل ساعة من كل يوم — أكثر جدول تكراراً ممكن في cron القياسي.
الرموز الشائعة وكيف تعمل
بالإضافة إلى حرف البدل النجمة، تدعم حقول cron عدة رموز تتيح لك التعبير عن النطاقات والفواصل والقوائم دون كتابة إدخالات منفصلة.
الفاصلة (قائمة)
تفصل الفاصلة القيم الفردية. 0 9,12,18 * * * تعمل في الساعة 9:00 صباحاً و12:00 ظهراً و6:00 مساءً كل يوم. كل قيمة في القائمة تُعامل بشكل مستقل.
الشرطة (نطاق)
تحدد الشرطة نطاقاً متصلاً. 0 9-17 * * * تعمل في بداية كل ساعة من الساعة 9:00 صباحاً حتى 5:00 مساءً. النطاقات شاملة لكلا الطرفين.
الشرطة المائلة (خطوة)
تحدد الشرطة المائلة فاصلاً زمنياً. */15 * * * * تعمل كل 15 دقيقة، بدءاً من الدقيقة 0. يمكنك الجمع بين نطاق وخطوة: 0-30/10 * * * * تعمل في الدقائق 0 و10 و20 و30 من كل ساعة.
دمج الرموز
يمكن خلط الرموز داخل حقل واحد. 0 8-12,18 * * 1-5 تعمل في بداية الساعات من 8 إلى 12 وأيضاً في الساعة 18، لكن فقط في أيام العمل. يتم تقييم كل حقل بشكل مستقل، ويعمل المجدوِل عندما تتطابق جميع الحقول الخمسة في وقت واحد.
للاطلاع على شرح أعمق لاستراتيجيات القراءة، انظر كيف تقرأ تعبيرات Cron بسرعة، الذي يغطي النماذج الذهنية لتحليل التعبيرات بنظرة واحدة.
كيفية تفسير الجداول الحقيقية
قراءة تعبير cron بشكل صحيح تعني ترجمة كل حقل بالترتيب ثم دمجها في جملة واحدة. إليك أمثلة عملية مع معادلاتها بلغة واضحة:
| التعبير | المعنى | متى يُستخدم | ملاحظات المخاطر |
|---|---|---|---|
0 0 * * * | منتصف الليل كل يوم | مهام دفعية يومية، تدوير السجلات | حمل ثقيل إذا شاركت مهام كثيرة هذا الوقت |
*/5 * * * * | كل 5 دقائق | فحوصات السلامة، استطلاع قائمة الانتظار | تردد عالٍ؛ تأكد أن المهمة متكافئة |
0 9 1 * * | الساعة 9:00 صباحاً في أول كل شهر | التقارير الشهرية | الأشهر التي تحتوي أقل من 31 يوماً تتصرف بشكل طبيعي |
30 2 * * 0 | 2:30 صباحاً كل أحد | نافذة صيانة أسبوعية | قد تتداخل مع انتقالات التوقيت الصيفي في الربيع |
0 */2 * * 1-5 | كل ساعتين في أيام العمل | استطلاع ساعات العمل | تعمل في 0، 2، 4 … 22 — ليس فقط ساعات العمل |
المثال الأخير هو تفسير خاطئ شائع. */2 في حقل الساعة تعني كل ساعة ثانية من 0، وليس كل ساعتين خلال ساعات العمل. إذا أردت فقط من 9 صباحاً إلى 5 مساءً، تحتاج 0 9-17/2 * * 1-5 بدلاً من ذلك. هذا بالضبط نوع الخطأ الخفي الذي يكتشفه شارح Cronwise بإظهار أقرب 10 تشغيلات مجدولة في منطقتك الزمنية.
الحالات الاستثنائية وحدود الحقول
لصيغة 5 حقول حدود يسهل نسيانها. فهمها يمنع الإخفاقات الصامتة.
تفاعل يوم الشهر مع يوم الأسبوع
في cron القياسي، عندما يكون كل من يوم الشهر (الحقل 3) ويوم الأسبوع (الحقل 5) معيّنين بقيم غير حرف البدل، تتعامل معظم التطبيقات معهما كاتحاد: تعمل المهمة إذا كان أي من الشرطين صحيحاً. هذا يعني أن 0 9 15 * 1 لا تعني "اليوم 15 إذا كان اثنين." إنها تعني "كل يوم 15 من الشهر و كل اثنين." هذه واحدة من أكثر المفاجآت المبلغ عنها في cron.
حدود الشهر ويوم الأسبوع
تعيين يوم الشهر على 31 يعني أن المهمة ستعمل فقط في الأشهر التي تحتوي 31 يوماً (يناير، مارس، مايو، يوليو، أغسطس، أكتوبر، ديسمبر). ستتخطى الأشهر الأقصر بصمت. وبالمثل، قيم يوم الأسبوع 0 و7 كلاهما يمثلان الأحد، لكن خلطهما في نفس التعبير يمكن أن يسبب ارتباكاً أثناء مراجعات الكود.
الاعتماد على المنطقة الزمنية
تعبير cron لا يحتوي على معلومات المنطقة الزمنية بحد ذاته. يفسر المجدوِل الأوقات في أي منطقة زمنية مهيأ لاستخدامها، والتي قد تكون UTC أو التوقيت المحلي للخادم أو تجاوز صريح. إذا كان فريقك يمتد عبر مناطق زمنية متعددة، تأكد دائماً من إعداد المنطقة الزمنية للمجدوِل قبل النشر. يتيح لك Cronwise تحديد أي منطقة زمنية IANA ومعاينة التشغيلات وفقاً لذلك.
طبّق ما تعرفه في سير عمل Cronwise
بمجرد فهم الحقول الخمسة، الخطوة التالية هي الانتقال من قراءة تعبيرات cron إلى بنائها بثقة. يقدم Cronwise مسارين متكاملين لذلك.
اشرح أولاً، ثم ولّد
ابدأ بـشارح Cron للتحقق من تعبير موجود. الصقه، اقرأ الملخص بلغة واضحة، وامسح جدول أوقات التشغيل القادمة. إذا لم يكن الجدول ما قصدته، انتقل إلى مولّد Cron لبناء التعبير الصحيح بصرياً حقلاً بحقل. يزيل المولّد تخمين الصيغة بالسماح لك باختيار القيم من القوائم المنسدلة والتبويبات.
قائمة التحقق قبل النشر
| الفحص | لماذا يهم | معايير النجاح |
|---|---|---|
| الملخص بلغة واضحة يتطابق مع النية | يكتشف أخطاء ترتيب الحقول | جملة الملخص تتوافق مع هدف جدولتك |
| طوابع أوقات التشغيل القادمة صحيحة | تكتشف سوء استخدام الرموز (نطاقات، خطوات) | أول 5 تشغيلات تتطابق مع التواريخ والأوقات المتوقعة |
| المنطقة الزمنية تتطابق مع البيئة المستهدفة | تمنع التنفيذ المتأخر بساعات | المنطقة الزمنية المحددة تساوي المنطقة المهيأة للمجدوِل |
| لا توجد تحذيرات تحقق | تكتشف الأنماط الخطرة مبكراً | صفر تحذيرات أو كل تحذير مقبول عن قصد |
للاطلاع على شرح كامل للمنشئ البصري، اقرأ مولّد Cron البصري: سير عمل خطوة بخطوة، الذي يغطي التنقل بين التبويبات والإعدادات المسبقة المحفوظة وخيارات التصدير.
الخلاصة: انشر بثقة
صيغة cron ذات 5 حقول بسيطة بشكل خادع: الدقيقة، الساعة، يوم الشهر، الشهر، ويوم الأسبوع. إتقانها يعني معرفة ليس فقط مواقع الحقول ولكن أيضاً كيف تتحد الرموز، وأين تختبئ الحالات الاستثنائية، ولماذا فحص التحقق الذي يستغرق 10 ثوانٍ يستحق الجهد في كل مرة.
إليك القواعد الرئيسية لتأخذها معك:
- اقرأ الحقول من اليسار إلى اليمين: الدقيقة، الساعة، اليوم، الشهر، يوم الأسبوع.
- النجمة تعني "كل" — إنها ليست عنصراً نائباً أو افتراضياً.
- يمكن دمج النطاقات والقوائم والخطوات، لكن كل حقل يُقيّم بشكل مستقل.
- يوم الشهر ويوم الأسبوع يشكلان اتحاداً عندما يكون كلاهما غير بدل — وليس تقاطعاً.
- تحقق دائماً من المنطقة الزمنية للمجدوِل وعاين أوقات التشغيل القادمة قبل النشر.
Cronwise مصمم لجعل هذا التحقق سريعاً. الصق تعبيراً، اقرأ الشرح، تحقق من التشغيلات، وانشر بثقة. تصفح جميع مقالات cron على Cronwise لمتابعة التعلم، أو انتقل مباشرةً إلى الأداة.