كرون

كرون
المطور(ون)مختبرات بيل التابعة لشركة AT&T
الإصدار الأوليمايو 1975 ؛ منذ 49 عامًا ( 1975-05 )
مكتوب فيج
نظام التشغيليونكس وأنظمة يونكس الشبيهة به ، الخطة 9 ، الجحيم
يكتبجدولة الوظائف

أداة cronسطر الأوامر هي أداة جدولة للوظائف على أنظمة التشغيل الشبيهة بنظام يونكس . يستخدم المستخدمون الذين يقومون بإعداد بيئات البرامج وصيانتها أداة cron لجدولة الوظائف [1] (الأوامر أو نصوص shell )، والمعروفة أيضًا باسم وظائف cron ، [2] [3] لتشغيلها بشكل دوري في أوقات أو تواريخ أو فترات زمنية محددة. [4] عادةً ما تعمل على أتمتة صيانة النظام أو إدارته - على الرغم من أن طبيعتها العامة تجعلها مفيدة لأشياء مثل تنزيل الملفات من الإنترنت وتنزيل البريد الإلكتروني على فترات منتظمة. [5]

يعد Cron مناسبًا جدًا لجدولة المهام المتكررة. يمكن إنجاز جدولة المهام لمرة واحدة باستخدام الأداة المساعدة المرتبطة .

اسم كرون مشتق من كلمة كرونوس ، وهي الكلمة اليونانية التي تعني الزمن. [6] [ مصدر أفضل مطلوب ]

ملخص

يتم تشغيل إجراءات cron بواسطة ملف crontab (جدول cron)، وهو ملف تكوين يحدد أوامر shell لتشغيلها بشكل دوري وفقًا لجدول زمني معين. يتم تخزين ملفات crontab حيث يتم الاحتفاظ بقوائم الوظائف والتعليمات الأخرى لبرنامج cron daemon . يمكن للمستخدمين الحصول على ملفات crontab الخاصة بهم وغالبًا ما يكون هناك ملف crontab على مستوى النظام (عادةً في /etcأو دليل فرعي من /etceg /etc/cron.d) لا يمكن تعديله إلا من قبل مسؤولي النظام. [ملاحظة 1]

يمثل كل سطر من ملف crontab مهمة، ويبدو كالتالي:

# * * * * * <الأمر الذي سيتم تنفيذه> 
# | | | | | | 
# | | | | يوم الأسبوع (0–6) (من الأحد إلى السبت؛ 
# | | | الشهر (1–12) 7 هو أيضًا يوم الأحد على بعض الأنظمة) 
# | | يوم الشهر (1–31) 
# | الساعة (0–23) 
# الدقيقة (0–59)

يتوقع بناء الجملة لكل سطر تعبير cron مكونًا من خمسة حقول تمثل الوقت المطلوب لتنفيذ الأمر، متبوعًا بأمر shell الذي يجب تنفيذه.

في حين يتم تنفيذ المهمة عادةً عندما تتطابق جميع حقول تحديد الوقت/التاريخ مع الوقت والتاريخ الحاليين، إلا أن هناك استثناءً واحدًا: إذا تم تقييد كل من "يوم الشهر" (الحقل 3) و"يوم الأسبوع" (الحقل 5) (لا يحتوي على "*")، فيجب أن يتطابق أحدهما أو كلاهما مع اليوم الحالي. [7]

على سبيل المثال، يقوم الأمر التالي بمسح سجل أخطاء Apache في الدقيقة الواحدة بعد منتصف الليل (00:01) كل يوم، على افتراض أن غلاف Cron الافتراضي لمستخدم cron متوافق مع غلاف Bourne :

1 0 * * * printf "" > /var/log/apache/error_log
        

يقوم هذا المثال بتشغيل برنامج shell يسمى export_dump.sh في الساعة 23:45 (11:45 مساءً) كل يوم سبت.

45 23 * * 6 /home/Oracle/scripts/export_dump.sh
     

ملاحظة: في بعض الأنظمة، من الممكن أيضًا تحديد */nالتشغيل لكل فترة زمنية رقم n1,2,3 . كما يمكن تحديد فترات زمنية محددة متعددة باستخدام الفواصل (على سبيل المثال، ). سيُخرج السطر أدناه "hello world" إلى سطر الأوامر كل 5 دقائق من كل ساعة أولى وثانية وثالثة (أي 01:00، 01:05، 01:10، حتى 03:55).

* /5 1،2،3 * * * صدى مرحبا بالعالم
       

يمكن تحرير ملف التكوين الخاص بمستخدم عن طريق الاتصال crontab -eبغض النظر عن المكان الذي يخزن فيه التنفيذ الفعلي هذا الملف.

تضيف بعض cronالتطبيقات، مثل الإصدار الرابع الشهير من BSD الذي كتبه Paul Vixie والمضمن في العديد من توزيعات Linux، حقلًا سادسًا: اسم مستخدم الحساب الذي يقوم بتشغيل المهمة المحددة (بشرط وجود المستخدم والأذونات). لا يُسمح بذلك إلا في ملفات crontab للنظام - وليس في غيرها، والتي يتم تعيين كل منها لمستخدم واحد لتكوينه. يتم استخدام الحقل السادس أحيانًا بدلاً من اسم مستخدم الحساب - يقوم برنامج nncron daemon لنظام Windows بذلك.

لا يستخدم تنفيذ Amazon EventBridge لـ cron يوم الأسبوع الذي يعتمد على 0، بل يستخدم بدلاً من ذلك 1-7 SUN-SAT (بدلاً من 0-6)، بالإضافة إلى دعم ميزات التعبير الإضافية مثل أول يوم في الأسبوع وآخر يوم في الشهر. [8]

تعريفات الجدولة المحددة مسبقًا غير القياسية

تدعم بعض تنفيذات cron [9] وحدات الماكرو غير القياسية التالية:

دخول وصف ما يعادل
@yearly(أو @annually) يتم تشغيله مرة واحدة في السنة عند منتصف ليل الأول من يناير 0 0 1 1 *
@monthly يتم تشغيله مرة واحدة شهريًا في منتصف ليل اليوم الأول من الشهر 0 0 1 * *
@weekly يتم التشغيل مرة واحدة في الأسبوع عند منتصف الليل يوم الأحد 0 0 * * 0
@daily(أو @midnight) قم بالركض مرة واحدة يوميًا في منتصف الليل 0 0 * * *
@hourly قم بالركض مرة واحدة كل ساعة في بداية الساعة 0 * * * *
@reboot تشغيل عند بدء التشغيل

@rebootيقوم بتكوين وظيفة لتشغيلها مرة واحدة عند بدء تشغيل الديمون. نظرًا لأن cron لا يتم إعادة تشغيله عادةً، فإن هذا يتوافق عادةً مع تشغيل الجهاز. يتم فرض هذا السلوك في بعض أشكال cron، مثل تلك المتوفرة في Debian ، [10] بحيث لا يؤدي مجرد إعادة تشغيل الديمون إلى إعادة تشغيل @rebootالوظائف.

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

أذونات كرون

يلعب هذان الملفان دورًا مهمًا:

  • /etc/cron.allow – إذا كان هذا الملف موجودًا، فيجب أن يحتوي على اسم المستخدم حتى يُسمح لهذا المستخدم باستخدام مهام cron.
  • /etc/cron.deny – إذا لم يكن ملف cron.allow موجودًا ولكن ملف /etc/cron.deny موجودًا، فمن أجل استخدام مهام cron، يجب عدم إدراج المستخدمين في ملف /etc/cron.deny.

لاحظ أنه إذا لم يكن أي من هذه الملفات موجودًا، فاعتمادًا على معلمات التكوين المعتمدة على الموقع، إما أن يتمكن المستخدم الفائق فقط من استخدام مهام cron، أو يمكن لجميع المستخدمين استخدام مهام cron.

التعامل مع المنطقة الزمنية

تفسر معظم تطبيقات cron إدخالات crontab ببساطة في إعداد المنطقة الزمنية للنظام الذي يعمل عليه برنامج cron daemon. يمكن أن يكون هذا مصدر نزاع إذا كان لدى جهاز كبير متعدد المستخدمين مستخدمون في عدة مناطق زمنية، وخاصة إذا كانت المنطقة الزمنية الافتراضية للنظام تتضمن التوقيت الصيفي المربك المحتمل . وبالتالي، قد يتعرف تطبيق cron كحالة خاصة على أسطر من النموذج "CRON_TZ=<time zone>" في crontabs للمستخدم، ويفسر إدخالات crontab اللاحقة بالنسبة لتلك المنطقة الزمنية. [11]

تاريخ

الإصدارات المبكرة

كان cron في الإصدار 7 من يونكس عبارة عن خدمة نظام (سميت لاحقًا باسم daemon ) يتم استدعاؤها /etc/rcعند دخول نظام التشغيل إلى وضع تعدد المستخدمين. [12] كانت خوارزميتها واضحة :

  1. اقرأ /usr/lib/crontab[13]
  2. حدد ما إذا كان يجب تشغيل أي أوامر في التاريخ والوقت الحاليين، وإذا كان الأمر كذلك، فقم بتشغيلها كمستخدم فائق ، الجذر.
  3. النوم لمدة دقيقة واحدة
  4. كرر من الخطوة 1.

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

القدرة على تعدد المستخدمين

تم إنشاء الإصدار التالي من cron، مع إصدار Unix System V ، لتوسيع قدرات cron لجميع مستخدمي نظام Unix، وليس فقط المستخدم الفائق. على الرغم من أن هذا قد يبدو تافهاً اليوم مع وجود معظم أنظمة Unix وأنظمة Unix المشابهة لمعالجات قوية وأعداد صغيرة من المستخدمين، إلا أنه في ذلك الوقت كان يتطلب نهجًا جديدًا على نظام MIPS واحد به ما يقرب من 100 حساب مستخدم.

في العدد الصادر في أغسطس 1977 من مجلة اتصالات ACM ، نشر WR Franta وKurt Maly مقالاً بعنوان "هيكل بيانات فعال لمجموعة أحداث المحاكاة"، يصف هيكل بيانات قائمة انتظار الأحداث لأنظمة المحاكاة المنفصلة المدفوعة بالأحداث والتي أظهرت "أداءً متفوقًا على أداء خوارزميات القائمة المرتبطة البسيطة المستخدمة بشكل شائع"، وسلوكًا جيدًا في ظل توزيعات زمنية غير موحدة، وأسوأ حالة تعقيد ، حيث يكون "n" هو عدد الأحداث في قائمة الانتظار.

قام طالب الدراسات العليا في جامعة بيرديو، روبرت براون، بمراجعة هذه المقالة، وأدرك التوازي بين cron ومحاكيات الأحداث المنفصلة ، ​​وأنشأ تنفيذًا لمدير قائمة الأحداث Franta–Maly (ELM) للتجريب. تعمل محاكيات الأحداث المنفصلة في الوقت الافتراضي ، وتزيل الأحداث من قائمة الأحداث بأسرع ما يمكن وتقدم مفهومها عن "الآن" إلى الوقت المجدول للحدث التالي. أدى تشغيل محاكي الأحداث في "الوقت الحقيقي" بدلاً من الوقت الافتراضي إلى إنشاء إصدار من cron يقضي معظم وقته في وضع السكون، في انتظار الوقت المجدول لتنفيذ المهمة على رأس قائمة الأحداث.

في العام الدراسي التالي، انضم طلاب جدد إلى برنامج الدراسات العليا في جامعة بيرديو، ومن بينهم كيث ويليامسون، الذي انضم إلى طاقم الأنظمة في قسم علوم الكمبيوتر. وكمهمة تمهيدية، طلب براون منه أن يطور نموذجًا أوليًا من برنامج cron إلى خدمة إنتاجية، وبدأ استخدام برنامج cron متعدد المستخدمين في جامعة بيرديو في أواخر عام 1979. وقد حل هذا الإصدار من برنامج cron محل برنامج cron /etc/cronالذي كان قيد الاستخدام في قسم علوم الكمبيوتر VAX 11/780 الذي يعمل بنظام 32/V.

الخوارزمية المستخدمة بواسطة هذا cron هي كما يلي:

  1. عند بدء التشغيل، ابحث عن ملف باسم موجود .crontabفي الدلائل الرئيسية لجميع أصحاب الحسابات.
  2. بالنسبة لكل ملف crontab تم العثور عليه، حدد المرة التالية في المستقبل التي يجب فيها تشغيل كل أمر.
  3. ضع هذه الأوامر في قائمة أحداث Franta–Maly مع الوقت المقابل لها ومحدد الوقت "الحقول الخمسة" الخاص بها.
  4. أدخل الحلقة الرئيسية:
    1. قم بفحص إدخال المهمة الموجودة في أعلى قائمة الانتظار، واحسب المسافة التي يجب أن تستغرقها في المستقبل.
    2. النوم لتلك الفترة من الزمن.
    3. عند الاستيقاظ والتأكد من الوقت الصحيح، قم بتنفيذ المهمة على رأس قائمة الانتظار (في الخلفية) بامتيازات المستخدم الذي أنشأها.
    4. تحديد المرة القادمة في المستقبل لتشغيل هذا الأمر ووضعه مرة أخرى في قائمة الأحداث في قيمة الوقت تلك.

بالإضافة إلى ذلك، يستجيب الديمون لإشارات SIGHUP لإعادة مسح ملفات crontab المعدلة ويجدول "أحداث تنبيه" خاصة في الساعة ونصف الساعة للبحث عن ملفات crontab المعدلة. تم حذف الكثير من التفاصيل هنا فيما يتعلق بعدم دقة تتبع وقت اليوم للكمبيوتر، وجدولة تنبيهات يونكس، والتغييرات الصريحة في وقت اليوم، وإدارة العملية، والتي تمثل جميعها غالبية أسطر التعليمات البرمجية في هذا cron. كما قام هذا cron بالتقاط مخرجات stdout و stderr وإرسال أي مخرجات عبر البريد الإلكتروني إلى مالك crontab.

تتناسب الموارد التي يستهلكها هذا cron فقط مع كمية العمل الممنوحة له ولا تزداد بشكل جوهري بمرور الوقت، باستثناء التحقق بشكل دوري من التغييرات.

أكمل ويليامسون دراسته وغادر الجامعة بدرجة الماجستير في علوم الكمبيوتر وانضم إلى مختبرات AT&T Bell في موراي هيل، نيوجيرسي، وأخذ معه هذا الأمر. في مختبرات Bell، قام هو وآخرون بدمج أمر يونكسat في الأمر cron، ونقل ملفات crontab من أدلة المستخدم الرئيسية (التي لم تكن خاصة بالمضيف) إلى دليل spool خاص بالمضيف، وأضافوا crontabالأمر بالضرورة للسماح للمستخدمين بنسخ ملفات crontab الخاصة بهم إلى دليل spool هذا.

ظهرت هذه النسخة من cron لاحقًا دون تغيير كبير في نظام Unix System V وفي BSD ومشتقاتهما، Solaris من Sun Microsystems ، وIRIX من Silicon Graphics ، وHP-UX من Hewlett-Packard ، و AIX من IBM . من الناحية الفنية، يجب أن يكون الترخيص الأصلي لهذه التطبيقات مع مؤسسة Purdue Research Foundation التي مولت العمل، ولكن هذا حدث في وقت لم يكن فيه اهتمام كبير بمثل هذه الأمور.

الإصدارات الحديثة

مع ظهور مشروع GNU و Linux ، ظهرت أدوات cron جديدة. وأكثرها انتشارًا هو Vixie cron، الذي برمجه في الأصل Paul Vixie في عام 1987. تم إصدار الإصدار 3 من Vixie cron في أواخر عام 1993. تمت إعادة تسمية الإصدار 4.1 إلى ISC Cron وتم إصداره في يناير 2004. يتم استخدام الإصدار 3، مع بعض الإصلاحات البسيطة للأخطاء، في معظم توزيعات Linux وBSD.

في عام 2007، قامت شركة Red Hat بتقسيم vixie-cron 4.1 إلى مشروع cronie ، مضيفة ميزات مثل دعم PAM وSELinux. [14] في عام 2009، تم دمج anacron 2.3 في cronie. [15] ومع ذلك، فإن Anacron ليس برنامج cron مستقل؛ يجب أن تقوم وظيفة cron أخرى باستدعائه.

تم إنشاء dcron الخاص بـ DragonFly بواسطة مؤسسها Matt Dillon ، وتم الاستيلاء على صيانته بواسطة Jim Pryor في عام 2010. [16]

في عام 2003، قدم ديل ميلور mcron، [17] وهو متغير cron مكتوب بلغة Guile والذي يوفر التوافق المتبادل مع Vixie cron مع توفير مرونة أكبر لأنه يسمح باستخدام كود مخطط عشوائي في حسابات الجدولة وتعريفات الوظائف. نظرًا لأن كل من برنامج mcron daemon وملفات crontab مكتوبة عادةً في scheme (على الرغم من أن mcron تقبل أيضًا ملفات crontab التقليدية الخاصة بـ Vixie)، فإن الحالة التراكمية لطابور الوظائف الخاص بالمستخدم متاحة لكود الوظيفة الخاص به، والذي قد يتم جدولته للتشغيل إذا كانت نتائج الوظائف الأخرى تلبي معايير معينة. يتم نشر Mcron افتراضيًا ضمن مدير حزمة Guix ، والذي يتضمن أحكامًا ( خدمات ) لمدير الحزمة لإصدار ملفات crontab الخاصة بـ mcron بشكل أحادي مع ضمان تثبيت الحزم اللازمة لتنفيذ الوظيفة وأن ملفات crontab المقابلة تشير إليها بشكل صحيح. [18]

تقوم حلول webcron بجدولة مهام الحلقة لتشغيلها بشكل منتظم أينما لم تكن تنفيذات cron متاحة في بيئة استضافة الويب .

تعبير كرون

تعبير cron هو عبارة عن سلسلة مكونة من خمسة أو ستة حقول مفصولة بمسافة بيضاء [19] تمثل مجموعة من الأوقات، عادةً كجدول زمني لتنفيذ بعض الروتينات.

تبدأ التعليقات بعلامة التعليق #، ويجب أن تكون على سطر منفصل.

مجال مطلوب القيم المسموح بها الأحرف الخاصة المسموح بها ملاحظات
دقائق نعم 0–59 * , -
ساعات نعم 0–23 * , -
يوم من الشهر نعم 1-31 * , - ? L W ? L Wفقط في بعض التنفيذات
شهر نعم 1-12 أو يناير-ديسمبر * , -
يوم الاسبوع نعم 0-6 أو الأحد-السبت * , - ? L # ? L #فقط في بعض التنفيذات
سنة لا 1970–2099 * , - هذا المجال غير مدعوم في التنفيذات القياسية/الافتراضية.

اختصارات الشهر وأيام الأسبوع ليست حساسة لحالة الأحرف.

في الحالة الخاصة بملف crontab الخاص بالنظام (/etc/crontab)، يتم إدراج حقل المستخدم قبل الأمر . وعادة ما يتم تعيينه على "الجذر".

في بعض استخدامات تنسيق cron، يوجد أيضًا حقل ثوانٍ في بداية النمط. في هذه الحالة، يكون تعبير cron عبارة عن سلسلة تتألف من 6 أو 7 حقول. [20]

علامة النجمة ( *)
تمثل علامات النجمة (المعروفة أيضًا باسم الأحرف البدل) "الكل". على سبيل المثال، سيؤدي استخدام "* * * * *" إلى التشغيل كل دقيقة. سيؤدي استخدام "* * * * 1" إلى التشغيل كل دقيقة فقط يوم الاثنين. يعني استخدام ست علامات نجمية كل ثانية عندما تكون الثواني مدعومة.
فاصلة ( ,)
تُستخدم الفواصل لفصل عناصر القائمة. على سبيل المثال، استخدام "MON,WED,FRI" في الحقل الخامس (يوم الأسبوع) يعني أيام الاثنين والأربعاء والجمعة.
شرطة ( -)
تحدد الشرطة النطاقات. على سبيل المثال، يشير "2000-2010" إلى كل عام بين عامي 2000 و2010، شاملاً.
النسبة المئوية ( %)
يتم تغيير علامات النسبة المئوية (%) في الأمر، ما لم يتم الإفلات منها باستخدام الشرطة المائلة العكسية (\)، إلى أحرف سطر جديد، ويتم إرسال جميع البيانات بعد أول % إلى الأمر كمدخل قياسي. [21]


الأحرف غير القياسية

فيما يلي الأحرف غير القياسية وتوجد فقط في بعض تنفيذات cron، مثل جدول Quartz Java .

L
"يرمز الحرف ""L"" إلى ""الأخير"". وعند استخدامه في حقل يوم الأسبوع، فإنه يسمح بتحديد بنيات مثل ""آخر يوم جمعة"" ("" 5L "") من شهر معين. وفي حقل يوم الشهر، فإنه يحدد اليوم الأخير من الشهر."
W
يُسمح باستخدام حرف "W" لحقل يوم الشهر. ويُستخدم هذا الحرف لتحديد يوم الأسبوع (من الاثنين إلى الجمعة) الأقرب إلى اليوم المحدد. على سبيل المثال، إذا تم تحديد " 15W " كقيمة لحقل يوم الشهر، فإن المعنى هو: "أقرب يوم عمل إلى اليوم الخامس عشر من الشهر". لذا، إذا كان اليوم الخامس عشر يوم سبت، يتم تشغيل المشغل في الجمعة 14. وإذا كان اليوم الخامس عشر يوم أحد، يتم تشغيل المشغل في الاثنين 16. وإذا كان اليوم الخامس عشر يوم ثلاثاء، فإنه يتم تشغيله في الثلاثاء 15. ومع ذلك، إذا تم تحديد "1W" كقيمة لحقل يوم الشهر، وكان اليوم الأول يوم سبت، يتم تشغيل المشغل في الاثنين 3، لأنه لا "يتخطى" حدود أيام الشهر. ولا يمكن تحديد حرف "W" إلا عندما يكون يوم الشهر يومًا واحدًا، وليس نطاقًا أو قائمة من الأيام.
هاش ( #)
يُسمح باستخدام "#" في حقل يوم الأسبوع، ويجب أن يتبعه رقم بين واحد وخمسة. ويسمح ذلك بتحديد تراكيب مثل "الجمعة الثانية" من شهر معين. [22] على سبيل المثال، إدخال "5#3" في حقل يوم الأسبوع يتوافق مع الجمعة الثالثة من كل شهر.
علامة الاستفهام ( ?)
في بعض التطبيقات، يتم استخدام " * " بدلاً من "" لترك يوم الشهر أو يوم الأسبوع فارغًا. تستخدم تطبيقات cron الأخرى علامة ""؟"" في وقت بدء تشغيل خادم cron، بحيث يتم تحديثه إلى ما إذا بدأ cron في الساعة 8:25 صباحًا، وسيعمل في هذا الوقت كل يوم حتى يتم إعادة تشغيله مرة أخرى. [23]? ? * * * *25 8 * * * *
مائل ( /)
في vixie-cron، يمكن دمج الخطوط المائلة مع النطاقات لتحديد قيم الخطوة. [9] على سبيل المثال، يشير */5 في حقل الدقائق إلى كل 5 دقائق (انظر الملاحظة أدناه حول الترددات). إنه اختصار لنموذج POSIX الأكثر إطنابًا 5,10,15,20,25,30,35,40,45,50,55,00 . لا يحدد POSIX استخدامًا للخطوط المائلة؛ يشير الأساس المنطقي (التعليق على امتداد BSD) إلى أن التعريف يعتمد على تنسيق System V ولكنه لا يستبعد إمكانية الامتدادات. [7]

لاحظ أن الترددات بشكل عام لا يمكن التعبير عنها؛ فقط قيم الخطوة التي تقسم نطاقها بالتساوي تعبر عن الترددات الدقيقة (بالنسبة للدقائق والثواني، تكون /2، /3، /4، /5، /6، /10، /12، /15، /20 و /30 لأن 60 قابلة للقسمة بالتساوي على هذه الأرقام؛ بالنسبة للساعات، تكون /2، /3، /4، /6، /8 و /12 )؛ جميع "الخطوات" الأخرى المحتملة وجميع الحقول الأخرى تنتج فترات "قصيرة" غير متسقة في نهاية وحدة الوقت قبل "إعادة تعيينها" إلى الدقيقة التالية أو الثانية أو اليوم التالي؛ على سبيل المثال، يؤدي إدخال */5 لحقل اليوم أحيانًا إلى التنفيذ بعد يوم أو يومين أو ثلاثة أيام، اعتمادًا على الشهر والسنة الكبيسة؛ وذلك لأن cron عديم الجنسية (لا يتذكر وقت آخر تنفيذ ولا يحسب الفرق بينه وبين الآن، وهو أمر مطلوب لحساب الترددات بدقة - بدلاً من ذلك، فإن cron هو مجرد مُطابق للأنماط).

لا تتطلب بعض المكتبات الخاصة باللغة والتي تقدم إمكانية جدولة crontab نطاقات "صارمة" 15-59/XX على يسار الشرطة المائلة عند استخدام النطاقات. [24] في هذه الحالات، يكون 15/XX هو نفسه جدول vixie-cron 15-59/10 في قسم الدقائق. وبالمثل، يمكنك إزالة -23 الإضافية من 0-23/XX ، و-31 من 1-31/XX ، و -12 من 1-12/XX للساعات والأيام والأشهر؛ على التوالي.

H
يُستخدم "H" في نظام التكامل المستمر لـ Jenkins للإشارة إلى استبدال قيمة "مجزأة". وبالتالي، بدلاً من رقم ثابت مثل " 20 * * * *" والذي يعني بعد 20 دقيقة من الساعة كل ساعة، H * * * *يشير " " إلى أن المهمة يتم تنفيذها كل ساعة في وقت غير محدد ولكنه ثابت لكل مهمة. وهذا يسمح بتوزيع المهام على مدار الوقت، بدلاً من جعلها تبدأ جميعها في نفس الوقت وتتنافس على الموارد. [25]

انظر أيضا

ملحوظة

  1. ^ هذا يعتمد على نوع التوزيع.

مراجع

  1. ^ "أتمتة المهام باستخدام Cron على Centos 8". 6 أبريل 2020.
  2. ^ "الفرق بين cron وcrontab وcronjob؟". Stack Overflow .
  3. ^ "Cron Job: دليل شامل للمبتدئين 2020". 24 مايو 2019.
  4. ^ "Crontab – Quick Reference". اختيار المشرف . 21 ديسمبر 2009.
  5. ^ "مقدمة للمبتدئين حول cron". Unixgeeks.org . تم الاسترجاع في 2013-11-06 .
  6. ^ "لينكس - cron و crontab".
  7. ^ ab "crontab"، مواصفات قاعدة مجموعة Open Group، العدد 7 — IEEE Std 1003.1، إصدار 2013 ، مجموعة Open Group، 2013 ، تم استرجاعها في 18 مايو 2015
  8. ^ "تعبيرات الجدول للقواعد". أمازون.
  9. ^ "دليل تنسيقات ملفات FreeBSD لـ CRONTAB(5)". مشروع FreeBSD.
  10. ^ "#77563 - cron: crontab(5) lies, '@reboot' is when cron restarted, not the system". نظام تتبع أخطاء دبيان . تم الاسترجاع في 2013-11-06 .
  11. ^ "crontab(5): tables for driving cron - Linux man page". Linux.die.net . تم الاسترجاع في 2013-11-06 .
  12. ^ "V7/etc/rc". الصفحة الرئيسية لـ Minnie . تم الاسترجاع في 12 سبتمبر 2020 .
  13. ^ "V7/usr/src/cmd/cron.c". الصفحة الرئيسية لـ Minnie . تم الاسترجاع في 12 سبتمبر 2020 .
  14. ^ "cronie-crond/cronie". cronie-crond. 20 سبتمبر 2024.
  15. ^ "التحميل الأولي لـ anacron-2.3 والذي ينبغي تحسينه ليكون أفضل · cronie-crond/cronie@55f4057". GitHub .
  16. ^ Pryor, Jim (2010-01-05). "Cron". arch-general@archlinux.org (قائمة بريدية) . تم الاسترجاع في 2013-11-06 .
  17. ^ ميلور، ديل (2003-06-01). "ماكرون - متطلبات المستخدم والتحليل" . تم الاسترجاع في 2019-06-11 .
  18. ^ "GNU Guix Reference Manual: 8.8.2 Scheduled Job Execution". GNU Guix. 2019-05-19 . تم الاسترجاع في 2019-06-11 .
  19. ^ "Ubuntu Cron Howto". Help.ubuntu.com. 2013-05-04 . تم الاسترجاع في 2013-11-06 .
  20. ^ "CronTrigger Tutorial". موقع Quartz Scheduler . مؤرشف من الأصل في 25 أكتوبر 2011. تم الاسترجاع في 24 أكتوبر 2011 .
  21. ^ "مرجع mcron crontab". Gnu.org . تم الاسترجاع في 2013-11-06 .
  22. ^ "دليل تكامل Oracle® Role Manager". Docs.oracle.com . تم الاسترجاع في 2013-11-06 .
  23. ^ "تنسيق Cron". nnالنسخ الاحتياطي . تم الاسترجاع في 2014-05-27 .
  24. ^ "Python Crontab". GitHub . تم الاسترجاع في 2023-04-05 .
  25. ^ "Timer Trigger Syntax". jenkins.com . تم الاسترجاع في 2018-02-16 .
  • crontab: جدولة العمل الدوري في الخلفية – مرجع Shell and Utilities، مواصفات UNIX الفردية ، الإصدار 4 من The Open Group
  • جنو كرون (mcron)
  • ISC كرون 4.1
  • صديق
  • مكتبة ACM الرقمية – Franta, Maly, "هيكل بيانات فعال لمجموعة أحداث المحاكاة" (يتطلب اشتراك ACM pubs)
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=Cron&oldid=1253567935"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate