محلل تعبيرات cron
خمسة حقول تفصل بينها مسافات، أو اختصار مثل @daily.
ترث ملف crontab وتجده مليئًا بأسطر مثل 0 */2 * * 1-5 و30 3 * JAN,JUL 1. يوسّع هذا المحلل كل حقل إلى القيم التي يطابقها بالضبط، فبدلًا من تخمين ما يغطيه */2 ترى الساعات الاثنتي عشرة التي يختارها وعددها إلى جانبها. وتحصل أيضًا على التعبير القياسي من 5 حقول، وعلى تحذير حين يكون التعبير فخًّا معروفًا، وعلى مواعيد التشغيل الخمسة القادمة محسوبة بحسب منطقتك الزمنية.
كيفية تحليل تعبير cron
-
1
الصق التعبير
سطر من 5 حقول (`* * * * *`): الدقيقة والساعة ويوم الشهر والشهر ويوم الأسبوع. وتعمل الاختصارات مثل `@daily` أيضًا.
-
2
اقرأ الحقول الموسَّعة
يُعرض كل حقل مع القيم المطابقة وعددها، فيُظهر `*/2` في حقل الساعة القيم 0 و2 و4 والتسع الأخرى التي يغطيها.
-
3
تحقق من مواعيد التشغيل القادمة
5 مواعيد تشغيل قادمة، تُحسب في متصفحك بحسب منطقتك الزمنية أنت. وإذا لم تطابق ما تقصده، فحسّن التعبير.
-
4
اقرأ التحذيرات
ينبّهك المحلل إلى المزالق: ضبط حقلَي اليوم معًا، أو تاريخ لا يقع أبدًا، أو معامل لا يفهمه cron القياسي.
إلى أي القيم يتوسّع كل حقل
الحقل ليس قيمة واحدة، بل مجموعة قيم. ومعرفة حجم هذه المجموعة تجيب عادةً عن السؤال الذي جئت من أجله.
| الحقل | النطاق | ما يطابقه * |
ملاحظات |
|---|---|---|---|
| الدقيقة | 0-59 | 60 قيمة | أكثر مصادر المهام المنفلتة شيوعًا |
| الساعة | 0-23 | 24 قيمة | نظام 24 ساعة، لا من 1 إلى 12 |
| يوم الشهر | 1-31 | 31 قيمة | تتخطى الأشهر القصيرة الأيام غير الموجودة ببساطة |
| الشهر | 1-12 | 12 قيمة | تُقبل أيضًا JAN حتى DEC |
| يوم الأسبوع | 0-7 | 7 قيم | الرقمان 0 و7 كلاهما الأحد |
المعاملات داخل الحقل الواحد: العلامة * تعني كل قيمة، و1,5,10 قائمة قيم، و1-5 نطاق، و*/15 خطوة تُحسب من بداية النطاق، و0-45/15 خطوة داخل نطاق محدد.
الأسماء والاختصارات مقبولة
تُقرأ أسماء الأشهر وأيام الأسبوع وتُوسَّع إلى الأرقام التي تطابقها، فيُظهر التعبير 30 3 * JAN,JUL 1 الشهر 1, 7 ويوم الأسبوع 1. أما الاختصارات المسماة فتُوسَّع إلى صيغتها من 5 حقول قبل أي خطوة أخرى:
| الاختصار | يتوسّع إلى | المعنى |
|---|---|---|
@yearly و@annually |
0 0 1 1 * |
منتصف ليل 1 يناير |
@monthly |
0 0 1 * * |
منتصف ليل اليوم الأول من الشهر |
@weekly |
0 0 * * 0 |
منتصف ليل الأحد |
@daily و@midnight |
0 0 * * * |
منتصف الليل كل يوم |
@hourly |
0 * * * * |
على رأس كل ساعة |
ويُعرف @reboot أيضًا، لكن لا جدول زمني له يمكن توسيعه: فهو يعمل مرة واحدة عند بدء تشغيل الجهاز، فلا مواعيد تشغيل يمكن معاينتها.
تحذيرات تستحق القراءة
- تقييد حقلَي اليوم معًا. لا يعني
0 0 1 * MON«اليوم الأول، بشرط أن يصادف يوم اثنين». يعامل cron القياسي حقلَي اليوم كسلوك OR حين يكون كلاهما مقيدًا، فيعمل هذا السطر في الأول من كل شهر و في كل يوم اثنين. ينبّه المحلل إلى ذلك، وتتبع معاينة مواعيد التشغيل قاعدة OR نفسها. - تاريخ لا يقع أبدًا. يطلب
0 0 30 2 *يوم 30 فبراير. التعبير سليم الصياغة وسيقبله cron، لكنه لن يعمل أبدًا. يقول المحلل ذلك صراحةً بدلًا من عرض قائمة فارغة بلا تفسير. - معاملات Quartz. المعاملات
L(الأخير) وW(أقرب يوم عمل) و#(اليوم الأسبوعي رقم N في الشهر) و?امتدادات من Quartz، وليست جزءًا من crontab القياسي. تُعرَف داخل السطر المكوَّن من 5 حقول ويُنبَّه إليها، ويُظهر الحقل أنه معامل من معاملات Quartz لا قائمة قيم. ولا تُحسب أي مواعيد تشغيل، لأن cron القياسي لن يشغّل هذا السطر أصلًا.
ما يُرفض رفضًا قاطعًا
- عدد الحقول الخاطئ. يُرفض سطر Quartz المكوَّن من 6 حقول بالثواني، أو المكوَّن من 7 حقول بالسنة، بسبب عدد الحقول.
- القيم خارج النطاق، مثل الدقيقة 75 أو الشهر 13.
- النطاق التنازلي مثل
5-1. - الخطوة صفر مثل
*/0.
ويسمّي كل رفض الحقلَ والقيمةَ المسببة له، فتصلح شيئًا واحدًا بدل إعادة كتابة السطر كله.
المنطقة الزمنية
تُحسب معاينة مواعيد التشغيل القادمة في متصفحك، بحسب المنطقة الزمنية المضبوطة على جهازك. أما ملف crontab فيعمل بالمنطقة الزمنية للجهاز الذي يستضيفه، فإن كان ذلك الخادم يعمل بتوقيت UTC وكنت أنت في منطقة أخرى، فعدّل الأوقات تبعًا لذلك قبل المقارنة.
الأسئلة الشائعة
ليس كجدول زمني. فسطر Quartz المكوَّن من 6 حقول بالثواني، أو المكوَّن من 7 حقول بالسنة، يُرفض بسبب عدد الحقول. أما معاملات Quartz داخل سطر عادي من 5 حقول (L وW و# و?) فحالة أخرى: تُعرَف ويُنبَّه إليها، لكن لا تُحسب أي مواعيد تشغيل، لأن cron القياسي لن يشغّل ذلك السطر أيضًا.
السببان المعتادان هما فارق المنطقة الزمنية بين جهازك والخادم الذي يشغّل ملف crontab، أو ضبط حقلَي اليوم معًا. فحين يكون يوم الشهر ويوم الأسبوع مقيدَين معًا، يشغّل cron المهمة عند تطابق أحدهما أو الآخر، لا عند تطابقهما معًا، ولذلك يعمل 0 0 1 * MON أكثر بكثير مما يتوقعه معظم الناس. وعدد القيم المعروض بجانب كل حقل هو أسرع وسيلة لاكتشاف حقل أوسع مما ظننت.
نعم. تستخدم Kubernetes الصيغة القياسية من 5 حقول. والأمر الوحيد الذي يجب الانتباه له هو الساعة: يعمل CronJob بالمنطقة الزمنية للعنقود (وهي UTC ما لم يحدد spec.timeZone غير ذلك)، بينما تستخدم المعاينة هنا المنطقة الزمنية لجهازك أنت.
هما اختصاران مسميان يقبلهما cron في لينكس بدلًا من الحقول الخمسة. فالاختصار @daily (وكذلك @midnight) يعادل 0 0 * * *، و@weekly يعادل 0 0 * * 0، و@monthly يعادل 0 0 1 * *، و@yearly (وكذلك @annually) يعادل 0 0 1 1 *، و@hourly يعادل 0 * * * *. الصق أيًّا منها ليعرض لك المحلل صيغته من 5 حقول. أما @reboot فهو الاستثناء: يعمل عند بدء التشغيل، فلا جدول زمني له ولا مواعيد تشغيل.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator)
إزالة التشفير من كود جافا سكريبت مُصغَّر أو مُعبَّأ باستخدام إعادة تسمية المتغيرات، وفك ترميز السلاسل النصية ومصفوفات البيانات، بالإضافة إلى عكس تسطيح تدفق التحكم وتحسين هيكله.
مولد تراخيص
قم بإنشاء النص الكامل لترخيصات المصدر المفتوح مع إدخال اسمك والسنة المقابلة، ويشمل ذلك تراخيص MIT وApache 2.0 وGPLv3 وBSD-3 وMPL-2.0 وCC.
مولّد إعدادات Nginx
أنشئ كتل server في Nginx مع TLS وHTTP/2 وgzip والتخزين المؤقت في المتصفح وقواعد الوكيل العكسي، انطلاقًا من نموذج بسيط.
مدقق البريد الإلكتروني
تحقق من عنوان بريد إلكتروني: فحص صياغة RFC 5322، واستعلام حي عن سجل MX، بالإضافة إلى تفاصيل الجزء المحلي والنطاق والطول. لا يتم إرسال أي بريد.
الأداة متاحة بلغات أخرى
- Analizador de expresiones cron [ES]
- Bộ phân tích biểu thức Cron [VI]
- Cron 표현식 파서 [KO]
- Pengurai Ekspresi Cron [ID]
- Parser wyrażeń cron [PL]
- Analyseur d'expressions cron [FR]
- Analisador de Expressões Cron [PT]
- Cron-Ausdruck-Parser [DE]
- Cron 式パーサー [JA]
- Cron-expressieparser [NL]
- Parser för cron-uttryck [SV]
- เครื่องมือแยกวิเคราะห์นิพจน์ Cron [TH]
- Cron Expression Parser [EN]
- Parser di espressioni cron [IT]
- Парсер cron-выражений [RU]
- Cron İfadesi Ayrıştırıcı [TR]
- Cron 表达式解析器 [ZH]