العربية

أدوات المطورين · مولد Crontab

حقول crontab(5): ما يحدده POSIX وما هو امتداد Vixie

· خلفية

كرون قابلية النقل تصديق

بطاقة نحوية مكونة من خمسة أعمدة تحتوي على رموز مقبولة وحدود محمية
الرسم التوضيحي المتجه الأصلي ToolAcre

ليست كل ميزة cron قياسية. يفصل هذا المنشور ما تتطلبه مواصفات POSIX من الامتدادات (الخطوات والأسماء والألقاب) التي أضافها Vixie cron والتي تفترضها معظم أنظمة Linux.

من الممكن أن يظل تعبير ToolAcre الصالح غير مدعوم من قبل برنامج جدولة آخر

الجدول الزمني الذي يمر بـ ToolAcre يرضي هذا المحلل اللغوي، وليس كل تنفيذ cron. تبدأ قابلية النقل بهذا البيان المتواضع. يقبل المسار خمسة حقول بالضبط وقواعد نحوية مميزة. قد يقبل الجهاز أو الخدمة أو إطار العمل المستهدف كمية أقل أو أكثر أو شيئًا مختلفًا من الناحية الهيكلية.

احتفظ بنتيجة المتصفح كدليل واحد: التعبير والوصف والتحذيرات ومنطقة المعاينة. قبل النشر، قارن الوثائق المستهدفة وقم بإجراء اختبار غير ضار. يصبح التحقق من الصحة خطيرًا فقط عندما يتم ترقية الإشارة الخضراء المحلية إلى ضمان التوافق العالمي.

لا يحدد المستودع ما يتطلبه POSIX

قام المصنف بفصل متطلبات POSIX عن الامتدادات، ولكن لا تظهر مواصفات POSIX في مصادر المستودع. لا يمكن لسلوك ToolAcre أن يثبت الميزات التي لها صلاحيات قياسية. لذلك يصف هذا القسم بناء الجملة المطبق دون تعيينه إلى هيئة المعايير.

النطاقات الرقمية التي تم تنفيذها هي 0–59 دقيقة، 0–23 ساعة، 1–31 يومًا من الشهر، 1–12 شهرًا و 0–7 أيام الأسبوع. يتم تحليل واختبار أحرف البدل والقيم الفردية والنطاقات الشاملة وقوائم الفواصل وخطوات أحرف البدل وخطوات النطاق وقيمة البداية المجردة مع خطوة.

يتم تنفيذ الأسماء والخطوات والأحد 7 والأسماء المستعارة هنا دون المطالبة بسجل المعايير

أسماء الأشهر من JAN إلى DEC وأسماء أيام الأسبوع من SUN إلى SAT غير حساسة لحالة الأحرف. يمكن أن تظهر الأسماء بمفردها، في القوائم وفي النطاقات. يتم قبول يوم الأسبوع 7 باعتباره يوم الأحد ويتم ضبطه على 0. هذه خصائص يمكن ملاحظتها لـ `parseField`، بغض النظر عن كيفية تصنيفها بواسطة تطبيق آخر.

يتم توسيع جدول الاسم المستعار `@yearly`، `@annually`، `@monthly`، `@weekly`، `@daily`، `@midnight` و `@hourly`. تم رفض `@reboot` عمدًا لأنه لا يحتوي على جدول تقويم لمعاينته. تتلقى كلمات الإشارة غير المعروفة خطأً في تسمية القائمة المدعومة.

دعم تعيين البيئة خارج هذا المحلل

لا تعد مهام البيئة جزءًا من قواعد التعبير هذه. يتوقع مربع الإدخال جدولاً زمنيًا واحدًا، ويقوم `parseCron` بتقسيمه إلى خمس أجزاء بعد حل الاسم المستعار المدعوم. لا يمكن اختبار سطر `KEY=value` من أجل التوسع أو الاقتباس أو قابلية النقل عبر هذا المسار.

هذا الإغفال يمنع المطالبة بالمعايير الكاذبة. يمكن أن يحتوي ملف crontab الكامل على بنيات لا تراها أداة التعبير فقط أبدًا. التحقق منها بشكل منفصل ضد الهدف. لا ينبغي إعادة استخدام الأخطاء الميدانية الدقيقة لـ ToolAcre كأحكام حول أسطر غير مرتبطة في ملف أكبر.

تحقق من القواعد النحوية المستهدفة واستخدم اختبار جدول غير ضار

يجب أن يبدأ التحقق من الهدف بعدد الحقول والمشغلين. تأكد من قبول الأسماء، الأحد 7، وخطوات الشرطة المائلة، والأسماء المستعارة للتوقيع. ثم قم بتثبيت إجراء غير ضار يمكن ملاحظته لفترة قصيرة المدى، ثم قم بإزالته بعد التقاط الأدلة ومقارنة النتيجة المستهدفة بالتعبير المقصود.

لا تختبر قابلية النقل باستخدام أمر حساس أو عن طريق انتظار تاريخ سنوي نادر. اختر أصغر مسبار آمن يميز الدعم النحوي. يمكن أن يساعد ToolAcre في إنشاء هذا الجدول الزمني وشرحه، بينما يحدد التشغيل المستهدف الجزء الذي لا يستطيع المتصفح معرفته.

مثال عملي: نموذج الخطوة والقائمة الصريحة ضمن قواعد ToolAcre

لكل خمس دقائق، يقبل ToolAcre `*/5 * * * *`. كما يقبل أيضًا قائمة الدقائق الصريحة `0,5,10,15,20,25,30,35,40,45,50,55 * * * *`. يؤدي التحليل إلى توسيع حقلي الدقائق إلى نفس القيم الاثنتي عشرة، بحيث يتطابق مرشحو التشغيل التاليون ضمن نفس لحظة البداية والمنطقة.

يمكن أن تعمل القائمة الصريحة كمرشح احتياطي عندما يفتقر الهدف إلى بناء جملة الخطوة، ولكن لا يمكن لهذا المستودع التصديق على دعم قائمة ذلك الهدف. قارن كلا النموذجين في ToolAcre للحصول على التكافؤ الدلالي، ثم تحقق من أي شكل من المستندات الوجهة. التكافؤ هنا ليس دليلاً على قابلية النقل هناك.

تم رفض بناء الجملة المكون من ستة حقول؛ لم يتم توثيق دلالاتها الخارجية هنا

الحقل السادس غير مقبول. يشير الخطأ إلى أن نمط الثواني البادئة ينتمي إلى الكوارتز أو الإدخال الشبيه بالنظام، لكن المحلل اللغوي لا ينفذ تلك القواعد النحوية. لا تحتوي على حقل سنة ولا تحتوي على عوامل تشغيل `?` أو `L` أو `W` أو `#`.

عد الحقول قبل محاولة الترجمة. إذا كان بناء الجملة غير المدعوم يحمل معنى جدولة، فقد تكون إعادة الكتابة الواضحة المكونة من خمسة حقول مفقودة. استخدم الوثائق والاختبارات لبرنامج الجدولة المصدر، ثم قم بالتعبير فقط عن المتطلبات التي يمكن تمثيلها بواسطة القواعد النحوية المستهدفة لـ ToolAcre. وأي شيء آخر يجب أن يظل عدم توافق صريحًا.

الخلاصة: تعرف على الميزات التي تعتبر امتدادات - واستخدم المولد لإنشاء كلا النموذجين والتحقق منهما عندما تكون قابلية النقل مهمة

إمكانية النقل هي مقارنة، وليست تسمية مضمنة في التعبير. ToolAcre يعطي جانبًا واحدًا تم اختباره جيدًا: خمسة مواضع، وحدود رقمية، وأسماء محددة، ونطاقات قابلة للتركيب/lists/steps وسبعة أسماء مستعارة. كما أنه يعطي رفضًا واضحًا للنماذج المشوهة أو الأجنبية.

استخدم هذا العقد للتفكير بدقة، ثم تحقق من الطرف الآخر. يمكن أن تتساوى القائمة الصريحة والخطوة في هذا المحلل بينما تعمل واحدة فقط في مكان آخر. يُعد الإبلاغ عن حدود اللهجة أكثر قابلية للتنفيذ من استدعاء معيار لم تستخرجه المقالة فعليًا.