أدوات المطورين · مولد Crontab
أمثلة على تعبيرات Cron: كل ساعة، ليلاً، أيام الأسبوع، أول الشهر
· كيف يعمل
كرون أمثلة جدولة
تغطي عشرة جداول معظم crontabs الحقيقية. يقدم هذا المنشور التعبير الخاص بكل منها، ويشرح الحقول، ويشير إلى الحقل الذي يخطئ الناس فيه دائمًا.
أنت بحاجة إلى "أول الشهر في 06:00" وتختلف نتائج البحث — مجموعة من التعبيرات التي تم التحقق منها مع المنطق
إن الإجابة المنسوخة عن "الأول من الشهر في 06:00" تكون مفيدة فقط إذا كان من الممكن تبرير كل مركز. بترتيب خمسة حقول، `0 6 1 * *` تعني الدقيقة صفر، الساعة السادسة، اليوم من الشهر الأول، كل شهر وكل يوم من أيام الأسبوع. قراءة الحقول تمنع المثال الجذاب من أن يصبح تبعية إنتاج غير مفسرة.
تظل الأمثلة هنا ضمن القواعد النحوية التي يمارسها المحلل اللغوي والاختبارات الخاصة بـ ToolAcre. إنها أجزاء من الجدول الزمني، وليست تعريفات وظيفية كاملة. يمكن للمتصفح وصفها وإظهار المرشحين لساعة الحائط المستقبلية في منطقة محددة، لكنه لا يعرف الأمر أو الأذونات أو المضيف الذي قد يستخدمها في النهاية.
كل دقيقة، كل 5 دقيقة، كل ساعة — * * * * *، */5 * * * * و0 * * * *، وسبب أهمية 0 البادئة
`* * * * *` يحدد قيمة كل دقيقة من كل ساعة وتاريخ. `*/5 * * * *` يقوم بتضييق الدقائق إلى 0، 5، 10 وهكذا حتى 55. `0 * * * *` يختار الدقيقة صفر فقط، مما يؤدي إلى إنتاج مرشح واحد في أعلى كل ساعة. وبالتالي فإن الصفر البادئ هو الفرق بين موضع الستين دقيقة وواحد.
تظهر النماذج الثلاثة إما في الإعدادات المسبقة أو في بناء الجملة الذي تم اختباره. يتم توسيع الخطوة من الحد الأدنى لحقل الدقيقة، بينما يقوم حرف البدل بتوسيع كل قيمة مسموح بها من 0 إلى 59. استخدم المعاينة لفحص عمليات التشغيل بدقة بعد الآن؛ لا تستنتج أن الأداة قد بدأت عملية متكررة لمجرد أنها تستطيع تعداد المرات.
يوميًا مرة واحدة ومرتين يوميًا — 30 2 * * * و 0 6,18 * * *
يوميًا في 02:30 هو `30 2 * * *`: الدقيقة 30 والساعة 2 مع حقول تقويم غير مقيدة. مرتين يوميًا في 06:00 و18:00 هو `0 6,18 * * *`؛ تجمع الفاصلة بين قيمتين للساعتين بينما تظل الدقيقة ثابتة. كلاهما أسهل في المراجعة عندما تكون قائمة الساعات صريحة بدلاً من تكرارها كسطرين.
تعمل المنطقة الزمنية المحددة على تغيير اللحظات المعروضة لنفس حقول ساعة الحائط. ToolAcre يحسب كل مرشح كتوقيت حائط محلي في تلك المنطقة ويحذف توقيتًا محليًا غير موجود أثناء تغيير الساعة الأمامية. ينتمي سلوك المعاينة إلى هذه الأداة؛ المقال لا يعممه في وعد حول كل شيطان.
أيام الأسبوع وعطلات نهاية الأسبوع — 0 8 * * 1-5 و 0 10 * * 0,6، مع تحذير ترقيم الأحد
أيام الأسبوع في 08:00 هي `0 8 * * 1-5`، وصباح نهاية الأسبوع في 10:00 هي `0 10 * * 0,6`. يقبل هذا المحلل اللغوي يوم الأحد كـ 0 أو 7 ويقوم بتطبيع كليهما بنفس القيمة. الأسماء مدعومة أيضًا، لذلك يمكن أن يحل `MON-FRI` محل `1-5` دون تغيير أيام الأسبوع الموسعة.
تجنب تحديد يوم من الشهر في نفس الوقت ما لم يكن اتحاد OR مطلوبًا. `0 8 1 * 1-5` لا يعني أيام الأسبوع في اليوم الأول فقط. ويشمل الأول من كل شهر بالإضافة إلى كل يوم من أيام الأسبوع. يحذر المولد عندما يتم تقييد حقلي اليوم ويضع "أو" في الجملة الناتجة.
شهري وربع سنوي وسنوي — 0 6 1 * *، 0 6 1 1,4,7,10 * و 0 0 1 1 *
شهريًا عند 06:00 في اليوم الأول هو `0 6 1 * *`. ربع سنوي في اليوم الأول من شهر يناير وأبريل ويوليو وأكتوبر هو `0 6 1 1,4,7,10 *`. يتم تشغيل منتصف الليل سنويًا في شهر يناير 1 وهو `0 0 1 1 *`، وهو أيضًا التوسيع المستخدم بواسطة الأسماء المستعارة المدعومة `@yearly` و`@annually`.
تستخدم هذه الأمثلة يومًا موجودًا في كل شهر محدد. يقبل ToolAcre التركيبات المستحيلة باعتبارها قانونية من الناحية النحوية ولكنه يحذر، على سبيل المثال، عندما يتم إقران اليوم 30 بشهر فبراير فقط. يتلقى شهر فبراير 29 تحذيرًا بالسنة الكبيسة. وبالتالي تظهر صلاحية التقويم بشكل منفصل عن القواعد النحوية للمجال بدلاً من إخفائها خلف رسالة عامة غير صالحة.
لا يمكن التعبير عن جدولة اليوم الأخير مع مشغلي الحقول الخمسة المدعومين
لا تحتوي القواعد المعتمدة على مشغل اليوم الأخير. تم رفض `L` بدلاً من ترجمته، ويفشل اليوم 31 في تغطية الأشهر بثلاثين يومًا أو فبراير. اقترح المصنف اختبار التاريخ من جانب الأمر، لكن هذا المستودع لا ينفذ الأوامر أو يتحقق منها، لذلك لا تقدم المقالة هذا الحل البديل كميزة منشئة مدعومة.
اعتبر "آخر يوم من كل شهر" متطلبًا يتجاوز لغة التعبير هذه. حدد استراتيجية جدولة أو أمر موثقة بواسطة الهدف الفعلي، واختبرها هناك. يظل ToolAcre مفيدًا للحقول الخمسة العادية المحيطة بهذا القرار، ولكن نجاح التحقق من الصحة لا يمكنه تصنيع عامل تشغيل لا ينفذه المحلل اللغوي.
يتم رفض حقول الثواني والمشغلين الأجانب بواسطة هذا المحلل اللغوي
لا تحتوي التعبيرات الكلاسيكية في هذا المسار على موضع الثواني أو السنة. تم رفض ستة حقول مع إرشادات حول نمط جدولة موجه نحو الثواني. يرفض المحلل اللغوي أيضًا `?` و`#` و`L` و`W` لأن قارئ القيمة الخاص به يقبل الأرقام ويدعم الأسماء المكونة من ثلاثة أحرف والنطاقات والفواصل والشرط المائلة وأحرف البدل فقط.
ولذلك لا يمكن تمثيل متطلب دقيقة فرعية هنا. ولا يمكن تعريف تعبير من برنامج جدولة آخر بأنه مكافئ لمجرد أنه يبدو مشابهًا. قم بإحصاء المواضع والتحقق من دعم المشغل وإعادة بناء المجموعة المقصودة باستخدام القواعد النحوية المستهدفة. يجب أن تظل الدلالات المحذوفة فجوة واضحة، وليس تقريبًا عرضيًا.
الخلاصة: قم بالبناء من هذه العشرة - واستخدم مولد Crontab لتكييف أحدها وقراءة النتيجة مرة أخرى
تصبح الجداول الزمنية الشائعة أكثر أمانًا عندما يكون لكل رمز سبب: صفر دبابيس على الحدود، وفاصلة لتسمية البدائل، ونطاق يتضمن كلا الطرفين، ونجمة تفتح الحقل. توفر الإعدادات المسبقة عدة نقاط بداية، بما في ذلك كل دقيقة وربع ساعة وساعة ويومية وساعات عمل خلال أيام الأسبوع والأحد والنماذج الشهرية والسنوية.
قم بضبط أقرب إعداد مسبق، وقراءة الجملة التي تم إنشاؤها ومسح المرات الخمس التالية ضوئيًا في المنطقة المقصودة بالجهاز. يتحقق هذا التسلسل من نية التعبير مع الحفاظ على النشر خارج المتصفح. والمثال الجيد ليس مجرد نسخة جاهزة؛ إنه صغير بما يكفي ليتمكن مراجع آخر من إعادة بناء سبب وجود كل حقل.