إيقاف بحثك عن نمط Cron — هناك مُولِّد لذلك
تعبيرات كرون هي واحدة من تلك الأشياء التي تُستخدم بكثرة ولكن لا يُمكن تذكرها بسهولة. إليك ما تعنيه الحقول الخمسة فعليًا، الأخطاء التي تُصيب الناس، ولماذا يُعدّ مولد تعبيرات كرون عبر الإنترنت الطريقة الأذكى.
إن الوقت 2 صباحًا. تم تخطيط نشر في الساعة 6 صباحًا. يجب أن تتحقق مجددًا من أن مهمة التوقيت ستنشأ في الوقت الصحيح. لذا تفتح تبويبًا جديدًا وتحاول إدخال "سُنَّة كرون" في جوجل. مرة أخرى.
هذا هو مُحَوِّل للوصول إلى المعرفة. كل مطوّر قد يلمس خادم لينكس على الأقل مرة واحدة — وغالبًا ما يفعل ذلك أكثر مما يرغب في الاعتراف به. تُستخدم عبارات كرون بشكل متكرر، لكن لا يُحفظ التفاصيل. تقع البنية في منطقة غير مريحة بين "البساطة بحيث لا يُستحسن التحقق منها" و"الدقة الكافية لتُخطئ فيها".
هناك طريقة أفضل. استخدم مُولِّد عبارة كرون عبر الإنترنت وأذن للأداة أن تُدير البنية بينما تركز على ما هو مهم حقًا.
لماذا ترفض عبارة كرون الاحتفاظ بها؟
يحتوي كرون على خمسة مجالات. خمسة فقط. ومع ذلك، يُسبب الترتيب مشكلة لكل مرة:
# ┌───────────── minute (0–59)
# │ ┌───────────── hour (0–23)
# │ │ ┌───────────── day of month (1–31)
# │ │ │ ┌───────────── month (1–12)
# │ │ │ │ ┌───────────── day of week (0–6, Sunday=0)
# │ │ │ │ │
* * * * * command
المسألة ليست أن الأمر صعب — بل أن هناك عددًا كافيًا من الرموز الخاصة لتُثير التباسًا. هل */5 "كل 5 دقائق" أم "في الدقيقة 5"؟ هل 0 9 * * 1-5 تُنفذ في 9 صباحًا أم 9 مساءً؟ ماذا يحدث إذا نسيت أن الأشهر تبدأ من 1 ولكن أيام الأسبوع تبدأ من 0؟
هذه ليست مصاعب تواجه المبتدئين. هذه مصاعب تواجه الجميع. تُعدّ مُكوّنة كرون خاطئة واحدة من الطرق الهادئة لتقديم حادث في البيئة الإنتاجية — النوع الذي لا يُسبب توقفًا فوريًا، بل يُنفذ بشكل سلبي، ويُلاحظ فقط بعد ثلاثة أيام.
الخمسة مجالات، مع التوضيح دون تفاصيل
إليك النسخة العملية:
- الدقيقة (0–59) — الدقيقة في الساعة التي تُنفذ فيها المهمة.
30يعني 30 دقيقة من الساعة.*/15يعني كل 15 دقيقة. - الساعة (0–23) — يستخدم الوقت بالساعة المُستخدمة في 24 ساعة.
9هو 9 صباحًا.17هو 5 مساءً. لا يوجد تناقض بين صباح ومساء. - يوم الشهر (1–31) — أي يوم من التقويم.
1هو أول يوم من الشهر.15هو اليوم 15. - الشهر (1–12) — يناير هو
1، ديسمبر هو12. يمكنك أيضًا استخدام الأسماء:JAN,FEB، إلخ. - يوم الأسبوع (0–6 أو 1–7) — يمكن أن يكون الأحد
0أو7بشكل يعتمد على تطبيقك لـ كرون. الاثنين دائمًا يكون1. هذا هو المجال الذي يسبب أكبر التباس.
الرموز الخاصة التي تهمك
*— كل القيم الممكنة (كل دقيقة، كل ساعة، إلخ).*/n— كل الن --- (End of output)مُتَوَّسِط.*/5في مجال الدقيقة يعني كل 5 دقائق.a-b— نطاق.1-5في مجال يوم الأسبوع يعني من الاثنين إلى الجمعة.a,b,c— قائمة.1,3,5تعني الاثنين، الأربعاء، الجمعة.@reboot,@hourly,@daily— تسميات مختصرة. ليست مدعومة في كل الأماكن.
الإغفالات الشائعة التي تُصيب الناس
1. نسيان المنطقة الزمنية
يُنفذ كرون في المنطقة الزمنية المحلية للخادم. إذا كان الخادم في الوقت العالمي (UTC) وتم تواجده في نيويورك، فإن 0 9 * * * لا يُنفذ في 9 صباحًا في نيويورك — بل يُنفذ في 4 أو 5 صباحًا، حسب التغيير في التوقيت (DST). يجب أن تعرف دائمًا المنطقة الزمنية للخادم. يجب أن تعرف دائمًا.
2. استخدام يوم الشهر ويوم الأسبوع معًا
إذا قمت بوضع قيمة في كل من مجال يوم الشهر و مجال يوم الأسبوع (بدلاً من * في أحد المجالين)، فإن معظم تطبيقات كرون تتعامل معها كـ "أو" — يتم تنفيذ المهمة عندما تُحقق أي من الشروط. وهذا ليس ما نريده عادةً.
3. التوقع أن */1 يعني "مرة واحدة"
*/1 هو نفسه كـ *. يعني "كل مرة". لا يوجد طريقة لتمثيل "التشغيل مرة واحدة" في كرون القياسي — لذا يجب استخدام at أو مُزامن نظام systemd واحدي.
4. عدم اختباره قبل النشر
لا يُعطي كرون تغذية فورية. تكتب العبارة، تُحفظ، ثم تنتظر. إذا كانت خاطئة، ستجد ذلك في 3 صباحًا عندما لا يُنفذ النسخ الاحتياطي المُخطط له. لهذا السبب، من المهم استخدام مُحسب التوقيت التالي لـ كرون قبل النشر، حتى لو استغرق 30 ثانية.
استخدم مُولِّد عبارة كرون بدلًا من ذلك
النص المُباشر: توقف عن محاولة كتابة عبارات كرون من الذاكرة. استخدم مُولِّد. ليس هذا ضعفًا — بل هو طريقة تُساعدك على تجنب الأخطاء السلبية في البيئة الإنتاجية.
ال مُولِّد عبارة كرون على IOTools يسمح لك ببناء أي عبارة بصريًا — اختر فترة الدقيقة، الساعات، يوم الأسبوع، وسترى العبارة المُحددة وشرحًا بسيطًا باللغة الإنجليزية للوقت الذي تُنفذ فيه. لا حاجة للحفظ، ولا حاجة لفتح أوراق التوثيق.
بمجرد أن تُحصل على عبارة، قم بتشغيلها عبر مُحسب التوقيت التالي لـ كرون. الصق العبارة، وستحصل على 5 إلى 10 وقت مُخطط له للتشغيل. يستغرق 5 ثوانٍ وسَيُخبرك فورًا إذا أخطأت في تخطيط مهمة التنظيف بحيث تُنفذ كل دقيقة بدلًا من مرة واحدة في اليوم.
التحقق الثاني هو الذي يُستبعد من قبل معظم الناس. لا تُستبعد.
مراجع سريعة: العبارات التي ستستخدمها في الواقع
| التعبير | معنى |
|---|---|
* * * * * | كل دقيقة |
0 * * * * | كل ساعة، على الساعة |
0 9 * * * | كل يوم في الساعة 9:00 صباحًا |
0 9 * * 1-5 | في أيام الأسبوع في الساعة 9:00 صباحًا |
*/15 * * * * | كل 15 دقيقة |
0 0 * * 0 | في منتصف الليل يوم الأحد |
0 0 1 * * | في أول يوم من كل شهر في منتصف الليل |
30 4 1,15 * * | في 1 و15 من كل شهر في الساعة 4:30 صباحًا |
0 22 * * 1-5 | في أيام الأسبوع في الساعة 10:00 مساءً |
@daily | مرة واحدة في اليوم في منتصف الليل (بشكل مختصر) |
تثبيت ملحقاتنا
أضف أدوات IO إلى متصفحك المفضل للوصول الفوري والبحث بشكل أسرع
恵 وصلت لوحة النتائج!
لوحة النتائج هي طريقة ممتعة لتتبع ألعابك، يتم تخزين جميع البيانات في متصفحك. المزيد من الميزات قريبا!
