شرح تعبير Cron — المعنى ومواعيد التشغيل القادمة
شرح تعبيرات cron بخمسة أو ستة حقول مع مواعيد التشغيل الخمسة القادمة والمناطق الزمنية
تعمل في متصفحك · لا يُرفع أي شيء
صيغة 5 حقول: الدقيقة الساعة اليوم الشهر يوم-الأسبوع · صيغة 6 حقول: الثانية الدقيقة الساعة اليوم الشهر يوم-الأسبوع
كل 5 دقائق
بلغة واضحة
كل 5 دقائق
مواعيد التشغيل الـ 5 القادمة
ما هذه الأداة؟
تعبير cron قصير مثل */5 * * * * غامض، حتى لمن كتبه قبل بضعة أشهر. أدخله هنا فيُشرح في جملة واضحة، وتُحسب المواعيد الخمسة القادمة التي سيعمل فيها فعلًا بحسب المنطقة الزمنية التي تختارها. وتأتي الجملة من المكتبة مفتوحة المصدر cronstrue.
طريقة الاستخدام
- اكتب تعبير cron أو اضغط أحد أزرار الأمثلة. تعمل الصيغة ذات الحقول الخمسة والصيغة ذات الحقول الستة مع الثواني.
- اقرأ المعنى تحت «بلغة واضحة».
- اختر منطقة زمنية فتُعاد حساب مواعيد التشغيل الخمسة القادمة لها. منطقة المتصفح هي الافتراضية.
- إذا استخدمت اختصارًا مثل
@dailyفيظهر بجانبه التعبير القياسي الذي يمثله.
كيف تعمل؟
- ترتيب الحقول: الحقول الخمسة هي الدقيقة (0-59) والساعة (0-23) واليوم (1-31) والشهر (1-12) ويوم الأسبوع (0-7)، والحقول الستة تضيف الثواني (0-59) في البداية. يوم الأسبوع 0 و7 كلاهما الأحد و1 هو الاثنين (Unix cron وSpring)، وهذا يختلف عن Quartz حيث 1 هو الأحد.
- يمكن أن يستخدم الحقل
*أو رقمًا أو نطاقًاa-bأو قائمةa,bأو خطوات*/nأوa-b/nأوa/n. ويقبل حقلا الشهر ويوم الأسبوع أيضًا اختصارات إنجليزية مثلJANوMON. وفي حقلي اليوم ويوم الأسبوع تُعامل?مثل*. - الاختصارات:
@yearly(0 0 1 1 *) و@monthly(0 0 1 * *) و@weekly(0 0 * * 0) و@daily(0 0 * * *) و@hourly(0 * * * *). - عندما لا يكون يوم الشهر ولا يوم الأسبوع
*، يُنفَّذ الموعد إذا تطابق أيٌّ منهما. - تُوجد المواعيد القادمة بالسير على ساعة المنطقة المختارة حقلًا بعد حقل، مع البحث حتى 8 سنوات قادمة كحد أقصى. والتاريخ الذي لا يأتي أبدًا، مثل 30 فبراير، تظهر بدلًا منه رسالة.
- التعبير غير الصالح يخبرك بالحقل والقيمة التي فيها المشكلة.
أمثلة
| التعبير | المعنى |
|---|---|
*/5 * * * * |
كل 5 دقائق |
0 9 * * 1-5 |
الساعة 09:00 في أيام العمل من الاثنين إلى الجمعة |
0 0 9 * * 1-5 |
ستة حقول: 09:00:00 من الاثنين إلى الجمعة |
30 2 1 * * |
الساعة 02:30 في اليوم الأول من كل شهر |
ملاحظات
- إذا كان الخادم يعمل في منطقة زمنية مختلفة عن متصفحك فستختلف مواعيد التشغيل الفعلية أيضًا، لذا اختر المنطقة التي يستخدمها الخادم عند الفحص.
- في التعبيرات الكثيفة مثل كل دقيقة أو كل ثانية، تأتي المواعيد الخمسة القادمة متتالية ببساطة.
الأسئلة الشائعة
ما الفرق بين 5 حقول و6 حقول؟
الحقول الخمسة هي الدقيقة والساعة واليوم والشهر ويوم الأسبوع، أما الستة فتضع الثواني في البداية لتصبح الثانية والدقيقة والساعة واليوم والشهر ويوم الأسبوع. يستخدم crontab في Linux خمسة حقول، بينما يستخدم @Scheduled في Spring ستة. تميّز الأداة بينهما بعدد الحقول. وتُرقَّم أيام الأسبوع كما في Unix cron وSpring: الصفر و7 للأحد و1 للاثنين. أما Quartz فيستخدم 1 للأحد حتى 7 للسبت، لذلك يظهر تحذير مع التعبير ذي الحقول الستة الذي يحتوي على ? ويوم أسبوع رقمي.
هل تقرأ الأداة تعبيرات Quartz؟
التعبير ذو الحقول الستة الذي تُكتب فيه أيام الأسبوع بأسمائها مثل MON أو FRI يُقرأ كما هو. أما الأيام الرقمية فترقيمها مختلف (في Quartz الرقم 1 هو الأحد، وفي هذه الأداة الصفر و7 للأحد و1 للاثنين)، فستنزاح يومًا واحدًا، لذا استخدم الأسماء أو اطرح 1. وإذا كان التعبير لـ Spring الذي يقبل ? أيضًا فلا ينطبق التحذير. والصيغة ذات الحقول السبعة التي تنتهي بالسنة، ورموز L وW و# غير مدعومة.
ماذا يحدث عند تحديد يوم الشهر ويوم الأسبوع معًا؟
تُطبَّق قواعد cron التقليدية، فيُنفَّذ الموعد إذا تطابق أيٌّ منهما. مثلًا 0 0 13 * 5 تعني منتصف الليل في اليوم 13 من كل شهر أو في أي يوم جمعة. وإذا كان أحدهما *، فالآخر وحده هو الشرط.
كيف تُعالج تغييرات التوقيت الصيفي؟
تُحسب المواعيد على الساعة المحلية للمنطقة المختارة. الوقت الذي تتخطاه قفزة الربيع لا يُنفَّذ ذلك اليوم، والوقت الذي يتكرر مرتين يُنفَّذ مرة واحدة عند أول حدوث له. وقد تتصرف المجدولات الحقيقية بشكل مختلف بحسب طريقة تنفيذها.
هل الامتدادات مثل L وW و# مدعومة؟
لا. تفهم الأداة الأرقام والنطاقات (-) والقوائم (,) والخطوات (/) و* و? واختصارات الأشهر وأيام الأسبوع (JAN وMON) والاختصارات @hourly و@daily و@weekly و@monthly و@yearly. وأي شيء آخر يُعرض كخطأ.