العرض باللغة العربية التبديل إلى الإنجليزية

شارح تعبيرات cron

ألصق تعبير cron واحصل على شرح بلغة واضحة. تدعم الأداة صيغتي cron القياسية ذات 5 حقول و6 حقول (مع الثواني).

أمثلة (انقر للتجربة)

  1. اكتب أو ألصق تعبير cron في حقل الإدخال أعلاه.
  2. اقرأ الشرح باللغة الواضحة الذي يظهر أسفله.
  3. انقر على أي مثال ليظهر في حقل الإدخال وترى نتيجة تحليله فورًا.
  4. أصلِح أي خطأ تحليلي يظهر باللون الأحمر وكرِّر حتى يتطابق الشرح مع ما تريد.
ماذا تفعل؟

يستقبل الشارح تعبير cron قياسيًا بصيغة Unix (5 حقول) أو بصيغة Quartz مع الثواني (6 حقول) ويعيد وصفًا بلغة البشر مثل «الساعة 09:00 من الإثنين إلى الجمعة». يدعم المعاملات الشائعة — *، ,، -، / — إلى جانب أسماء الأشهر (JAN-DEC) وأيام الأسبوع (SUN-SAT). تتحدّث النتيجة مع كل ضغطة مفتاح، لتتمكن من التجريب بسرعة.

مثال

مثال لمهمة في ساعات العمل الاعتيادية:

0 9 * * MON-FRI

المعنى:

الساعة 09:00، من الإثنين إلى الجمعة

تعبير Quartz أكثر تحديدًا بستة حقول وشاملًا للثواني:

0 30 2 ? * MON

المعنى (كل إثنين في 02:30:00).

صيغة cron

┌───────── دقيقة (0 - 59)
│ ┌─────── ساعة (0 - 23)
│ │ ┌───── يوم الشهر (1 - 31)
│ │ │ ┌─── شهر (1 - 12، أو JAN-DEC)
│ │ │ │ ┌─ يوم الأسبوع (0 - 6، أو SUN-SAT؛ 0 و7 يعنيان الأحد)
│ │ │ │ │
* * * * *

لماذا ينفَّذ cron «0 0 * * *» عند منتصف ليل UTC وليس بتوقيتي المحلي؟

تقع معظم مشكلات cron الفعلية ضمن عدد محدود من الفخاخ المتكررة:

  • انحراف المنطقة الزمنية. 0 0 * * * يُنفَّذ عند منتصف الليل وفق المنطقة الزمنية للمجدوِل. في Kubernetes CronJob و GitHub Actions الافتراضي هو UTC — اضبط spec.timeZone أو حوِّل الساعة إلى UTC بنفسك.
  • خلط 5 حقول مع 6 حقول. لصق 0 0 9 * * MON-FRI (6 حقول) في مجدوِل من 5 حقول يجعل 0 الأولى دقيقة و0 التالية ساعة، فيُنفَّذ العمل عند منتصف الليل لا في الساعة 09:00.
  • يوم الشهر ويوم الأسبوع معًا. 0 0 15 * MON يُنفَّذ في 15 من كل شهر وفي كل إثنين معًا — وليس فقط عندما يوافق يوم 15 إثنين. هذه هي دلالة OR في Vixie-cron.
  • step لا يُعاد ضبطه مع كل نشر. */10 * * * * يُنفَّذ عند :00 و:10 و:20 و:30 و:40 و:50 وفق الساعة — لا بعد عشر دقائق من آخر نشر.
  • استخدام ? في cron القياسي. ? هو امتداد خاص بـ Quartz. Unix cron يرفضه — استخدم * بدلاً منه.
  • يوم الأسبوع 0 مقابل 7. كلاهما يعني الأحد في cron الكلاسيكي، لكن بعض المحلِّلات (BSD القديم) تقبل 0 فقط. إن كانت قابلية النقل مهمة، فاستخدم SUN.

المعاملات

  • * — أي قيمة
  • , — قائمة قيم (مثل MON,WED,FRI)
  • - — نطاق (مثل 1-5)
  • / — قيم step (مثل */15 = كل 15)
الأسئلة الشائعة

ما الفرق بين cron ذات 5 حقول و6 حقول؟

cron POSIX القياسي مكوَّن من 5 حقول: الدقيقة، الساعة، يوم الشهر، الشهر، يوم الأسبوع. الصيغة ذات 6 حقول تضيف حقل الثواني في البداية وتستخدمها Quartz وSpring @Scheduled وعدد كبير من مكتبات cron في Node. التعبير من 6 حقول «0 0 9 * * MON-FRI» يُنفَّذ الساعة 9:00:00 أيام العمل، بينما التعبير من 5 حقول «0 9 * * MON-FRI» يُنفَّذ الساعة 9:00.

هل يدعم امتدادات Quartz مثل L و W و #؟

يدعم هذا الشارح لهجة Unix / Vixie cron الشائعة مع حقل ثوانٍ اختياري في البداية. الرموز الخاصة بـ Quartz فقط (L للأخير، W ليوم العمل، # للترتيب n من اليوم، والنائب ?) ليست جزءًا من cron القياسي ولا يُضمَن تحليلها. إن كنت تعتمد عليها، فتحقَّق من التعبير بوثائق المجدوِل المحدَّد.

لماذا يُنفَّذ 0 0 * * * في وقت مختلف عمّا أتوقع؟

تعبيرات cron لا تحمل منطقة زمنية. يعمل العمل عند منتصف الليل بتوقيت الجهاز أو الحاوية التي تُشغِّل المجدوِل. في Kubernetes CronJob و GitHub Actions و AWS EventBridge هذا يعني UTC افتراضيًا. إن أردت منتصف الليل محليًا، فعيِّن منطقة المجدوِل الزمنية بوضوح (spec.timeZone في CronJob، متغير TZ، مفتاح timezone في cron.yaml).

هل يمكن الجمع بين يوم الشهر ويوم الأسبوع؟

في Vixie cron القياسي، إن كان كل من يوم الشهر ويوم الأسبوع محدودًا، فيُنفَّذ العمل عند مطابقة أيٍّ منهما — وهي OR لا AND. ولهذا فإن «0 0 15 * MON» يعمل في 15 من كل شهر وفي كل إثنين. تعكس Quartz ذلك وتلزم جعل أحد الحقلين «?» لإزالة اللبس.

كيف تعمل قيم step؟

يستخدم step صيغة نطاق/step. «*/15 * * * *» يُنفَّذ كل 15 دقيقة ابتداءً من :00. و«10-50/20» في حقل الدقائق يُنفَّذ عند :10 و:30 و:50. لا يعني step «كل N من الآن» — تنحصر الحدود دائمًا بداية النطاق، ولذلك لا ينحرف step مع الوقت الحالي.

هل تحفظون تعبيرات cron التي أختبرها هنا؟

لا. لا نحتفظ بأي سجل لما تكتبه. كل ما تلصقه أو تجرِّبه يُحذف عند إغلاق الصفحة أو تحديثها — بلا سجلات ولا تحليل للجداول التي تعمل عليها. يمكنك التحقق في أدوات مطوري المتصفح لمزيد من الطمأنينة.