خبير Crontab
الصق تعبير cron واحصل على شرح حقلًا بحقل، بالإنجليزية الواضحة، لما يفعله. لا حاجة لتذكر ترتيب الحقول أو البحث عن النطاقات: يمر الخبير على كل حقل من الحقول الخمسة (الدقيقة والساعة ويوم الشهر والشهر ويوم الأسبوع) ويقرأ التعبير من اليسار إلى اليمين. مفيد للتحقق من سطر crontab قبل نشره أو لشرح سطر ورثته.
كيفية استخدام الخبير
-
1
الصق التعبير
انسخ أي تعبير cron قياسي من 5 حقول (مثل `0 9 * * 1-5`) في حقل الإدخال.
-
2
اطلب الشرح
انقر Explain Cron ليعيد لك الأداة وصفًا سطرًا بسطر لكل حقل: الدقيقة والساعة ويوم الشهر والشهر ويوم الأسبوع.
-
3
اقرأ الوصف
يُولَّد الشرح بالإنجليزية، على سبيل المثال "Minute: every 5 minutes" أو "Hour: from 9 through 17."
-
4
تحقق قبل النشر
استخدم الشرح للتأكد من أن الجدول الزمني يفعل ما تريد قبل وضعه في crontab أو إعدادات CI أو ملف Kubernetes manifest.
ورقة الحقول المرجعية
┌───────────── الدقيقة (0-59)
│ ┌─────────── الساعة (0-23)
│ │ ┌───────── يوم الشهر (1-31)
│ │ │ ┌─────── الشهر (1-12 أو JAN-DEC)
│ │ │ │ ┌───── يوم الأسبوع (0-6 أو SUN-SAT؛ الأحد = 0 أو 7)
│ │ │ │ │
* * * * *
العوامل في تعبيرات cron
| العامل | المعنى | مثال |
|---|---|---|
* |
كل قيمة | * * * * * |
, |
قائمة قيم | 0,15,30,45 |
- |
نطاق | 9-17 |
/ |
خطوة (بداية/خطوة) | */5، 0-30/5 |
L |
الأخير (آخر يوم في الشهر أو آخر يوم أسبوعي مطابق، Quartz) | L، 5L |
W |
أقرب يوم عمل | 15W (Quartz) |
# |
اليوم الأسبوعي المطابق رقم N في الشهر | 1#3 (Quartz) |
? |
لا قيمة محددة | فقط Quartz |
ترتيب القراءة مهم
يُقرأ 0 */2 * * 1-5 من اليسار إلى اليمين على النحو التالي: الدقيقة 0، كل ساعتين، أي يوم في الشهر، أي شهر، من الاثنين إلى الجمعة. أحيانًا يقرأ الناس الحقول من اليمين إلى اليسار بدافع العادة فيلتبس عليهم الأمر؛ ابدأ دائمًا بالدقيقة.
فخ “كل X دقيقة”
يُشغَّل */10 * * * * في الدقائق 0 و10 و20 و30 و40 و50، وليس “كل 10 دقائق منذ إنشاء المهمة”. تُقاس خطوات cron دائمًا من بداية نطاق الحقل. إذا نشرت مهمة في 12:03، فسيكون أول تشغيل في 12:10 وليس 12:13.
بالنسبة للمهام التي تحتاج فعلًا إلى “N دقيقة بعد آخر تشغيل”، استخدم جدولة بمؤقت دائم (مؤقتات systemd مع OnUnitActiveSec أو جدولة على مستوى التطبيق مع تخزين طابع وقت آخر تشغيل).
مزالق cron الجديرة بالمعرفة
- تعيين يوم الشهر ويوم الأسبوع معًا: معظم تطبيقات cron تعامل ذلك كسلوك OR، وربما لا يكون ما تريده.
- خطوة 0:
*/0غير صالح. - نطاق يلتف حول منتصف الليل:
22-2للساعات لا يعمل في cron التقليدي؛ استخدم22-23,0-2. - 30 فبراير: جدول مثل
0 0 30 2 *لا يُشغَّل أبدًا. - غموض التوقيت الصيفي (DST): المهام المجدولة بين 2 و3 صباحًا قد تُشغَّل مرتين أو لا تُشغَّل إطلاقًا في أيام الانتقال إلى التوقيت الصيفي.
cron مقابل أدوات الجدولة الحديثة
ما زال cron في يونكس مستخدمًا في كل مكان، لكن لأي شيء حساس فستريد غالبًا أحد هذه الخيارات:
- مؤقتات systemd: تلتقط التشغيلات الفائتة، وتدعم الإزاحات العشوائية، وتقرأ من ملفات الوحدات.
- Kubernetes CronJob: تصريحي، مع إعادة المحاولة، ويدرك المنطقة الزمنية في 1.25+.
- Airflow / Prefect / Dagster: للمهام ذات الاعتماديات وإعادة المحاولة والبيانات الرجعية والمراقبة.
- جدولة GitHub Actions: cron من 5 حقول، بتوقيت UTC فقط، بفاصل زمني أدنى 5 دقائق، مع تسليم بأفضل جهد.
cron في حد ذاته تنسيق رائع، لكنه أداة جدولة ضعيفة للمهام التي لا يجوز تفويتها.
الأسئلة الشائعة
لأن يوم الأسبوع 0 هو الأحد في cron القياسي (و7 أيضًا يوم الأحد، ما يدعم الصيغتين). الاثنين هو 1. أما Quartz فترقّم أيام الأسبوع من 1 إلى 7 بحيث يكون الأحد = 1، وهذا كثيرًا ما يُربك من ينتقل بين الصيغ.
يعمل cron التقليدي في يونكس بالمنطقة الزمنية المحلية للخادم، أي ما يقوله /etc/timezone. أما Kubernetes CronJob وGitHub Actions ومعظم أدوات الجدولة السحابية فتعمل بتوقيت UTC افتراضيًا. تحقق دائمًا، واستخدم UTC كلما أمكن لتجنب مفاجآت التوقيت الصيفي.
لا يستطيع cron التقليدي التعبير عن ذلك مباشرة. الحل البديل: شغّل المهمة كل اثنين وتحقق من التاريخ داخل السكربت: [ $(date +%d) -le 7 ] && ./job.sh. أما Quartz فتدعم ذلك أصليًا عبر 1#1.
لا. يحتاج كل جدول إلى سطر خاص به. لكن يمكنك دمج عدة جداول في سطر واحد باستخدام القوائم: 0 9,17 * * * يعمل في 9 و17. أما الجداول التي لا يمكن التعبير عنها في سطر واحد فأضف لها عدة أسطر تشير إلى الأمر نفسه.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
مرجع اختصارات لوحة المفاتيح
ابحث في الاختصارات الافتراضية الموثقة لـ VS Code وChrome وBash مع GNU Readline على macOS وWindows وLinux.
عدّاد FPS
قِس معدل الإطارات FPS في المتصفح عبر requestAnimationFrame: تنعيم، وأدنى وأقصى معدل إطارات، وحد تنبيه، ورسم بياني اختياري. يعمل محليًا بلا رفع ملفات وبلا API.
منسق JSON
الصق JSON لتنسيقه بمسافتين أو أربع مسافات، أو تصغيره إلى ناتج مضغوط، أو فحص بنيته بسرعة قبل نسخ النتيجة.
مولد لوحة الألوان
أنشئ لوحات ألوان أحادية أو متجاورة أو مكملة أو ثلاثية أو رباعية من لون HEX أساسي، ثم صدّر متغيرات CSS جاهزة للنسخ.
الأداة متاحة بلغات أخرى
- Crontab Guru [KO]
- Crontab Guru [VI]
- Crontab Guru [NL]
- Crontab Guru [ZH]
- Crontab Guru [DE]
- Crontab Guru [EN]
- Crontab Guru [ID]
- Crontab Guru [SV]
- Crontab Guru [PL]
- Crontab Guru [TH]
- Crontab Guru [ES]
- Crontab Guru [FR]
- Crontab Guru [PT]
- Crontab Guru [JA]
- Crontab Guru [TR]
- Crontab Guru [IT]
- Crontab Guru [RU]