العربية

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

علامات النسبة المئوية والاقتباسات والمتغيرات: لماذا تنكسر خطوط cron بصمت

· لماذا يهم

كرون صدَفَة تصديق

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

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

لا يمكن تشخيص فشل اسم الملف بعد الحقل الخامس بواسطة محلل التعبير هذا

إذا كان اسم ملف النسخ الاحتياطي الذي تم إنشاؤه فارغًا، فقد يظل تعبير التوقيت صحيحًا. `0 3 * * *` يحدد 03:00 كل يوم؛ الأحرف بعد الحقل الخامس لا تدخل مطلقًا إلى المحلل اللغوي ToolAcre. لا ينبغي "إصلاح" فشل جانب الأمر عن طريق تغيير الدقيقة أو الساعة ما لم تتعارض المعاينة نفسها مع النية.

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

لم يتم تطبيق أو اختبار دلالات أمر تسجيل النسبة المئوية هنا

ذكر المصنف تحويلاً خاصًا لعلامة النسبة المئوية. لا يوجد معجم مطابق في `cron.js`؛ يقبل القارئ الميداني الأرقام والأسماء المدعومة وعلامات الترقيم المستخدمة بواسطة النطاقات والقوائم والخطوات. تتوقف واجهة المستخدم أيضًا عن التحليل بعد مربع التعبير. لا يمكنه توضيح ما يحدث لأحرف النسبة المئوية في أمر منشور.

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

تتطلب نصيحة الهروب أدلة خاصة بالهدف ويتم حذفها

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

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

لا يتم قبول التعيينات المتغيرة كمدخلات تعبير

لا يحتوي سطر `KEY=value` على خمسة حقول جدول ويتم رفضه بواسطة هذا المحلل اللغوي. لا يوجد نموذج مهمة أو محرك توسيع أو جدول بيئة في الأداة. ما إذا كان crontab الحقيقي يقبل المهام وكيف يفسر قيمها أم لا يجب إثباته من هذا النظام.

يحمي هذا التمييز مناقشات قابلية النقل. ToolAcre قبول `JAN` كاسم شهر لا يوضح شيئًا عن `$HOME` في سطر التكوين. قد يظهر كلاهما في ملف crontab واحد، ولكن تعبير التقويم فقط هو الذي ينتمي إلى القواعد النحوية المطبقة التي تمت مراجعتها لهذه المقالات.

تنتمي عروض الأسعار واختيار الصدفة إلى ما هو أبعد من حدود المولد

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

اختيار الصدفة غائب أيضًا. لا يوجد `spawn`، `exec` أو مترجم أوامر في المسار المصدر. اختبر عرض الأسعار ضمن البيئة القابلة للتنفيذ التي ستستقبله بالفعل، وتجنب الادعاء بأن المولد قد وافق على سطر لمجرد أن بادئة التوقيت تظل صالحة.

حدود العمل: التحقق من صحة 0 3 * * * بشكل مستقل عن أمر مختوم بالتاريخ

بالنسبة لمتطلبات النسخ الاحتياطي المختوم بالتاريخ، تحقق أولاً من صحة `0 3 * * *`. يجب أن تصف الأداة 03:00 كل يوم وتعرض المرشحين في المنطقة المختارة. الحفاظ على تلك القطعة التي تم التحقق منها. ثم أنشئ اختبارًا غير ضار من جانب الأوامر يوضح اسم الملف المطلوب ضمن المجدول الهدف.

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

ما لا يغطيه هذا — البيئة ومشاكل PATH التي تمت تغطيتها في منشورهم الخاص

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

يحتاج نشر cron الكامل إلى أدلة أكثر من ذلك. تعامل مع الأحرف الخاصة والمتغيرات والدقة القابلة للتنفيذ باعتبارها اهتمامات من جانب المضيف. يعد رفض المولد تحليلها مفيدًا لأنه يمنع أداة التقويم الضيقة من التظاهر بصمت بفهم دلالات الأوامر.

الخلاصة: تعرف على الأحرف التي يمتلكها cron - وحافظ على الجدول الزمني صحيحًا مع المولد أثناء إصلاح الأمر

يمكن أن تحتوي خطوط كرون على قواعد نحوية مفصولة بالموضع. ToolAcre يطبق القواعد النحوية الأولى فقط، وينتهي بعد يوم من الأسبوع. قد تكون علامات النسبة المئوية وعلامات الاقتباس والمتغيرات مهمة لاحقًا، لكن لا يمكنها تغيير ما يعنيه `0 3 * * *` داخل هذا المحلل اللغوي.

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