tigtools

شرح تعبيرات Cron

أدخل جدول cron من خمسة حقول لمعرفة معناه ومواعيد تشغيله التالية. تُجرى جميع الحسابات في متصفحك.

تعمل في متصفحك لا يلزم التسجيل

خمسة حقول: الدقيقة، الساعة، يوم الشهر، الشهر، ويوم الأسبوع. تعمل أيضًا الاختصارات مثل @daily.

جداول شائعة

المعنى

كل 15 دقائق، بين 09:00 و17:59، في من الاثنين إلى الجمعة.

الحقول

الدقيقة
*/15
الساعة
9-17
يوم الشهر
*
الشهر
*
يوم الأسبوع
1-5
المنطقة الزمنية

مرات التشغيل الـ10 التالية

    كيفية الاستخدام

    1. اكتب تعبير cron أو الصقه، أو اختر أحد الجداول الشائعة.
    2. اطّلع على معنى التعبير بلغة واضحة. ستُذكر الحقول غير الصالحة مع سبب الخطأ.
    3. تحقق من مواعيد التشغيل العشرة التالية، المعروضة وفق منطقتك الزمنية المحلية. انتقل إلى UTC إذا كان خادمك يعمل وفق UTC.
    4. انسخ مواعيد التشغيل لمشاركتها، أو عدّل التعبير حتى تحصل على الجدول الذي تحتاج إليه.

    كيف تعمل الأداة

    يتكوّن تعبير cron القياسي، المستخدم في crontab على Linux (Vixie cron وcronie) وفي كثير من جداول CI والاستضافة، من خمسة حقول تفصل بينها مسافات: الدقيقة (0–59)، والساعة (0–23)، ويوم الشهر (1–31)، والشهر (1–12 أو JAN–DEC)، ويوم الأسبوع (0–7 أو SUN–SAT، حيث يشير كل من 0 و7 إلى يوم الأحد). يقبل كل حقل * للقيمة كلها، أو قيمة واحدة، أو نطاقًا مثل 1-5، أو قائمة مثل 1,15,30، أو خطوة مثل */15 (كل قيمة خامسة عشرة) أو 9-17/2 (كل ساعتين من 9 إلى 17). أسماء الأيام والشهور غير حساسة لحالة الأحرف. تشير الاختصارات @yearly (أو @annually) و@monthly و@weekly و@daily (أو @midnight) و@hourly إلى 0 0 1 1 * و0 0 1 * * و0 0 * * 0 و0 0 * * * و0 * * * * على الترتيب.

    يتبع حقلا يوم الشهر ويوم الأسبوع قاعدةً تفاجئ كثيرين. إذا بدأ أحد الحقلين بـ *، فيجب أن يطابق اليوم كلا الحقلين. أما إذا كان كلاهما مقيدًا، فيُطابق اليوم إذا وافق أيًّا منهما: يعمل 0 0 13 * 5 في اليوم 13 من كل شهر، وكذلك كل يوم جمعة، وليس في يوم الجمعة 13 فقط. وبما أن الاختبار يتحقق مما إذا كان الحقل يبدأ بـ *، فإن خطوة مثل */2 تُعد أيضًا غير مقيدة. يتوافق هذا السلوك مع Vixie cron وcronie، لكن بعض أدوات الجدولة الأخرى تتصرف بشكل مختلف.

    تُحسب مواعيد التشغيل التالية وفق المنطقة الزمنية لمتصفحك، أو وفق UTC، وهي المنطقة الزمنية التي تستخدمها معظم الخوادم وأدوات الجدولة السحابية. يستخدم cron نفسه المنطقة الزمنية للجهاز الذي يعمل عليه. تختلف خدمات cron الفعلية حول تغييرات التوقيت الصيفي؛ تستبعد هذه الأداة الأوقات المحلية غير الموجودة عند تقديم الساعة، وتعرض الساعة المكررة مرة واحدة. لا تدعم الأداة الصيغ الموسّعة: تعابير Quartz ذات الحقول الستة أو السبعة التي تتضمن الثواني أو السنوات، والأحرف الخاصة ? وL وW و#.

    أمثلة

    فحص سلامة النظام خلال ساعات العمل

    يعني */15 9-17 * * 1-5 التشغيل كل 15 دقيقة بين 09:00 و17:59، من الاثنين إلى الجمعة. وآخر تشغيل في كل يوم يكون عند 17:45.

    نسخ احتياطي ليلي

    يعمل 30 2 * * * عند الساعة 02:30 كل يوم. إذا كان الخادم يستخدم UTC وكنت في نيويورك، فستعرض قائمة مواعيد التشغيل التالية في وضع UTC الأوقات التي سيستخدمها الخادم فعليًا.

    فخ حقول الأيام

    قد يبدو 0 9 1 * 1 وكأنه يعني «الساعة 9:00 في أول الشهر إذا صادف يوم اثنين»، لكنه يعمل عند 09:00 في اليوم الأول من كل شهر، وكذلك كل يوم اثنين. للتشغيل في أول يوم اثنين فقط، جدْوِل 0 9 1-7 * * وتحقق من يوم الأسبوع داخل البرنامج النصي.

    الأسئلة الشائعة

    ما معنى */5 في cron؟

    تعني كل قيمة خامسة في الحقل، بدءًا من أدنى قيمة. في حقل الدقائق، يعمل */5 عند الدقائق 0 و5 و10 … 55. وفي حقل الساعات، يعمل */5 عند الساعات 0 و5 و10 و15 و20، لذا فإن الفاصل من 20:00 إلى منتصف الليل أربع ساعات، لا خمسًا.

    لماذا تعمل مهمتي في أيام أكثر مما توقعت؟

    عندما يكون حقلا يوم الشهر ويوم الأسبوع مقيدين، يعمل cron في الأيام التي تطابق أيًّا منهما. مثلًا، يعمل 0 0 15 * 1 في اليوم 15 من الشهر وفي كل يوم اثنين. اجعل أحد الحقلين * لتشترط مطابقة الحقل الآخر وحده.

    ما المنطقة الزمنية التي يستخدمها cron؟

    يستخدم cron المنطقة الزمنية للنظام على الخادم الذي يشغّل خدمة cron، إلا إذا حدّد crontab قيمة CRON_TZ أو TZ (وهذا مدعوم في cronie). غالبًا ما تستخدم أدوات الجدولة السحابية UTC افتراضيًا. استخدم مفتاح UTC للاطلاع على الأوقات التي سيستخدمها خادم يعمل وفق UTC.

    هل يمكنني استخدام الثواني أو حقل السنة؟

    ليس في cron القياسي، الذي يعمل بدقة دقيقة واحدة ويتكوّن من خمسة حقول. تنسيقات الحقول الستة والسبعة التي تتضمن الثواني والسنوات خاصة بـ Quartz وSpring والمكتبات المشابهة، ولا تدعمها هذه الأداة.

    هل 0 أم 7 يشير إلى يوم الأحد؟

    كلاهما صحيح. في حقل يوم الأسبوع، يشير كل من 0 و7 إلى يوم الأحد، و1 إلى الاثنين، و6 إلى السبت. ويمكنك أيضًا استخدام الأسماء المؤلفة من ثلاثة أحرف من SUN إلى SAT.

    الخصوصية

    يُحلّل التعبير وتُحسب مواعيد التشغيل في متصفحك. لا تُرفع أي معلومات تدخلها أو تُخزّن أو تُضمّن في بيانات التحليلات.