وظائف كرون: البرنامج التعليمي الكامل للمبتدئين

Cron Jobs Complete Beginners Tutorial



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

في هذا البرنامج التعليمي ، سنزودك بالمقدمة الأساسية لكل ما تحتاج إلى فهمه لجدولة وظيفة مع cron. يتضمن ذلك البنية الأساسية لـ cron ، وتحرير ملف crontab ، وجدولة مهمة باستخدام cron مع بعض الأمثلة ، وعرض وظيفة cron ، وما إلى ذلك.







أساسيات كرون جوب

دعونا نفهم بعض أساسيات وظيفة cron.



ما هو كروند؟

Crond هو البرنامج الخفي في نظام Linux الذي يعمل في الخلفية ويتحقق كل دقيقة لمعرفة ما إذا كان هناك أي وظيفة مجدولة في ذلك الوقت. إذا كان هناك ، فإنه يؤدي تلك الوظيفة ، وإلا فإنه يظل غير نشط.



بناء جملة مهمة كرون

تكون صيغة مهمة cron كما يلي:





* * * * *أمر/النصي

من اليسار:

  • الأول * يتوافق مع الدقائق (0-59)
  • الثاني * يتوافق مع الساعات (0-23)
  • الثالث * يتوافق مع يوم من الشهر (1-31)
  • الرابع * يتوافق مع الشهر من العام (1-12)
  • الخامس * يتوافق مع يوم الأسبوع (0-6 ، الأحد إلى السبت)

لتحديد قيم متعددة في حقل ، استخدم رموز المشغل التالية:



  1. النجمة (*): لتحديد كل القيم الممكنة للحقل
  2. اندفاع (-): إلى س حدد مجموعة من القيم
  3. الفاصلة (،): لتحديد قائمة القيم
  4. فاصل (/): لتحديد قيمة الخطوة

تحرير ملف Crontab

Crontab هو ملف يحتوي على الوظائف المجدولة في صيغة محددة. هناك نوعان من ملفات crontab ؛ أحدهما لوظائف cron الخاصة بالنظام والآخر لوظائف cron الخاصة بالمستخدم.

وظائف نظام كرون

توجد وظائف cron على مستوى النظام في / etc / crontab ملف و /etc/cron.d الدليل ، ويتم تشغيلها من خلال /etc/cron.hourly و /etc/cron.daily و /etc/cron.weekly و /etc/cron.monthly. يمكن فقط لمسؤول النظام الوصول إلى هذه الملفات.

يمكن لمسؤول النظام تحديد وظيفة cron باستخدام الأمر التالي:

$نانو /إلخ/كرونتاب

فيما يلي بناء جملة الوظيفة في ملف / etc / crontab ملف:

# min hr dayofmonth month dayofweek الأمر اسم المستخدم
* * * * *المستخدم 1ifconfig

وظائف cron الخاصة بالمستخدم

توجد وظائف cron الخاصة بالمستخدم في / var / spool / cron / crontabs الدليل. على الرغم من أنه يمكنك تحرير هذه المهام يدويًا ، فمن المستحسن تحرير هذه المهام باستخدام الأمر crontab -e.

يمكن للمستخدم القياسي تحديد وظيفة cron باستخدام الأمر التالي:

$كرونتاب

على سبيل المثال ، إذا قمت بتسجيل الدخول كمستخدم تجريبي ، فسيؤدي تشغيل الأمر crontab -e إلى تحرير ملف crontab لمستخدم الاختبار. وبالمثل ، إذا قمت بتسجيل الدخول كمستخدم جذر ، فسيقوم الأمر crontab -e بتحرير ملف crontab للمستخدم الجذر.

قم بإصدار الأمر التالي في Terminal لتحرير ملف crontab لأي مستخدم آخر:

$سودوكرونتاب-u <اسم االمستخدم>

على سبيل المثال ، إذا قمت بتسجيل الدخول كمستخدم test1 وتريد تحرير ملف crontab لمستخدم test2 ، فسيكون الأمر:

$سودوكرونتاب-uاختبار 2

إليك صيغة مهمة cron التي يمكن إضافتها في ملف crontab:

# m h dayofmonth month dayofweek الأمر
* * * * * ifconfig

يمكنك أن ترى في الوظائف الخاصة بالمستخدم أنه لا يوجد اسم مستخدم مسجل.

أوامر Crontab

يتم استخدام الأمر crontab لتحرير وظائف cron وإدراجها وإزالتها:

  • كرونتاب -e لتعديل ملف crontab الخاص بالمستخدم الحالي
  • كرونتاب -l لعرض محتويات ملف crontab
  • crontab -u [اسم المستخدم] لتعديل ملف crontab الخاص بأي مستخدم آخر
  • crontab -r لإزالة ملف crontab الخاص بالمستخدم الحالي
  • crontab -i لعرض مطالبة قبل إزالة ملف crontab الخاص بالمستخدم الحالي

جدولة وظيفة مع كرون

باستخدام Cron ، يمكنك تشغيل وظيفة في وقت وتاريخ وفترات زمنية محددة بحد أدنى للوحدة بالدقائق ، أي يمكنك تشغيل وظيفة كل دقيقة.

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

مثال:

سيعمل السطر التالي في ملف crontab على جدولة مهمة cron لتشغيل الأمر / البرنامج النصي في كل 30 دقيقة بعد 5 ساعات في كل يوم من أيام الأسبوع من الاثنين إلى السبت.

* /30 5 * * 1-6أمر/النصي

الدقائق

في هذا المجال ، نحدد الدقائق التي نريد فيها تنفيذ الأمر. تم تحديده من 0 إلى 59. تعني * في هذا الحقل تشغيل المهمة كل دقيقة. في سطر crontab أعلاه ، يخبر * / 30 وظيفة cron بتشغيل الأمر / البرنامج النصي المحدد كل 30 دقيقة.

ساعات

في هذا المجال ، نحدد الساعات التي نريد فيها تنفيذ الأمر. تم تحديده من 0 إلى 23. تعني * في هذا الحقل تشغيل المهمة كل ساعة. في سطر crontab أعلاه ، تخبر القيمة 5 وظيفة cron بتشغيل الأمر / البرنامج النصي المحدد كل خمس ساعات.

يوم من الشهر

في هذا المجال ، نحدد أيام الأشهر التي نريد فيها تنفيذ الأمر. تم تحديده من 1 إلى 31. * في هذا الحقل تعني كل يوم. في سطر crontab أعلاه ، تخبر الدالة * وظيفة cron بتشغيل الأمر / البرنامج النصي المحدد كل يوم.

شهر من السنة

في هذا المجال ، نحدد الأشهر المحددة التي نريد فيها تنفيذ الأمر. يتم تحديده من 1 إلى 12. تشير * في هذا الحقل إلى كل شهر. في سطر crontab أعلاه ، تخبر الدالة * وظيفة cron بتشغيل الأمر / البرنامج النصي المحدد كل شهر.

يوم من الأسبوع

في هذا المجال ، نحدد أيام الأسبوع التي نريد فيها تنفيذ الأمر. تم تحديده من 0 إلى 6 من الأحد إلى السبت (0 ليوم الأحد و 6 ليوم السبت). * في هذا المجال تعني كل يوم في الأسبوع. في سطر crontab أعلاه ، تخبر الدالة * وظيفة cron بتشغيل الأمر / البرنامج النصي المحدد كل يوم في الأسبوع.

أمثلة على وظائف كرون

فيما يلي بعض الأمثلة على وظائف cron:

قم بتشغيل وظيفة كرون كل 15 دقيقة

لجدولة وظيفة cron للتشغيل كل 15 دقيقة ، أضف السطر أدناه في ملف crontab:

* /خمسة عشر * * * *أمر/النصي

قم بتشغيل وظيفة cron في الساعة 5 صباحًا كل يوم

لجدولة وظيفة cron للتشغيل في الساعة 5 صباحًا كل يوم ، أضف السطر أدناه في ملف crontab:

0 5 * * *أمر/النصي

قم بتشغيل وظيفة cron في الساعة 5 مساءً كل يوم

لجدولة وظيفة cron للتشغيل في الساعة 5 مساءً كل يوم ، أضف السطر أدناه في ملف crontab:

0 17 * * *أمر/النصي

قم بتشغيل وظيفة cron في الساعة 9 صباحًا في اليوم الأول من كل شهر

لجدولة وظيفة cron للتشغيل في الساعة 9 صباحًا في اليوم الأول من كل شهر ، أضف السطر أدناه في ملف crontab:

0 9 1 * *أمر/النصي

قم بتشغيل وظيفة كرون كل ساعة في كل 15 مارس

لجدولة وظيفة cron كل ساعة في كل 15 مارس ، أضف السطر أدناه في ملف crontab:

0 * خمسة عشر 3 *أمر/النصي

قم بتشغيل وظيفة كرون كل 5 ساعات

لجدولة وظيفة cron كل 5 ساعات ، أضف السطر أدناه في ملف crontab:

0 * /5 * * *أمر/النصي

قم بتشغيل وظيفة كرون كل 15 دقيقة

لجدولة وظيفة cron للتشغيل كل 15 دقيقة ، أضف السطر أدناه في ملف crontab:

* /خمسة عشر * * * *

باستخدام السلاسل

يمكن أيضًا استخدام السلاسل التالية لتحديد الوظيفة:

  1. @ساعيا: لتنفيذ عمل مرة كل ساعة أي. 0 * * * *
  2. @منتصف الليل: لتنفيذ وظيفة مرة واحدة كل يوم ، أي ، 0 0 * * *
  3. @اليومي: نفس منتصف الليل
  4. @أسبوعي: لتنفيذ عمل مرة كل أسبوع أي. 0 0 * * 0
  5. @شهريا: لتنفيذ عمل مرة كل شهر أي. 0 0 1 * *
  6. @سنويا: لتنفيذ وظيفة مرة كل عام ، أي ، 0 0 1 1 *
  7. @سنوي: مثلannually
  8. @اعادة التشغيل: لتنفيذ وظيفة مرة واحدة في كل شركة ناشئة

على سبيل المثال ، لتشغيل برنامج نصي أو أمر كل أسبوع ، سيكون الإدخال في ملف crontab كما يلي:

@الأمر الأسبوعي/النصي

دلائل كرون المعرفة مسبقا

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

  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

على سبيل المثال ، لتنفيذ نص برمجي مرة كل شهر ، ستحتاج إلى وضعه في /etc/cron.monthly.

مشاهدة ملف Cron Jobs

عرض الوظائف للمستخدم الحالي

استخدم الأمر التالي لعرض جميع وظائف cron المجدولة للمستخدم الحالي:

$كرونتاب-ال

عرض الوظائف للمستخدمين الجذر

لعرض جميع الوظائف المجدولة للمستخدم الجذر ، قم بإصدار الأمر التالي في Terminal:

$قط /إلخ/كرونتاب

ستحتاج إلى تسجيل الدخول كمستخدم أساسي أو تشغيل الأمر مثل sudo.

عرض الوظائف للمستخدمين الآخرين

لعرض جميع الوظائف المجدولة لمستخدم معين ، قم بإصدار الأمر التالي في Terminal مع استبدال اسم المستخدم الفعلي:

$سودوكرونتاب-u <اسم االمستخدم> -ال

لتشغيل هذا الأمر ، ستحتاج إلى امتيازات sudo.

عرض وظائف كرون بالساعة

لعرض جميع وظائف cron التي تم تكوينها للتشغيل كل ساعة ، قم بإصدار الأمر التالي في Terminal:

$ls -ال /إلخ/كرون كل ساعة

عرض وظائف كرون اليومية

لعرض جميع وظائف cron التي تم تكوينها للتشغيل يوميًا ، قم بإصدار الأمر التالي في Terminal:

$ls -ال /إلخ/كرون/

عرض وظائف كرون الأسبوعية

لعرض جميع وظائف cron التي تم تكوينها للتشغيل أسبوعيًا ، قم بإصدار الأمر التالي في Terminal:

$ls -ال /إلخ/كرون/

عرض وظائف كرون الشهرية

لعرض جميع وظائف cron التي تم تكوينها للتشغيل شهريًا ، قم بإصدار الأمر التالي في Terminal:

$ls -ال /إلخ/كرون شهريًا/

النسخ الاحتياطي لجميع وظائف كرون

يوصى بالاحتفاظ بنسخة احتياطية من جميع مهام cron في ملف حتى تتمكن من الاسترداد في حالة الحذف. لعمل نسخة احتياطية لجميع المهام الحالية ، استخدم عامل إعادة التوجيه لإعادة توجيه إخراج crontab -l إلى ملف.

$كرونتاب-ال >backup_cron.txt

إزالة كافة وظائف Cron المجدولة

لإزالة جميع وظائف cron المجدولة ، استخدم العلامة -r كما يلي:

$كرونتاب-r

إذن Cron

يمكننا تقييد الوصول إلى الأمر crontab من خلال ملفين: / etc / cron.allow و / etc / cron.deny.

  • /etc/cron.allow - أضف مستخدمين (واحد في كل سطر) ممن تريد السماح لهم بالوصول إلى أوامر crontab. يمكن لهؤلاء المستخدمين تشغيل وظائف الجدول.
  • /etc/cron.deny - أضف مستخدمين (واحد في كل سطر) ممن تريد منعهم من الوصول إلى أوامر crontab. لا يمكن لهؤلاء المستخدمين تشغيل المهام المجدولة.

مولدات النحو Crontab

هناك بعض مواقع الويب التي تسمح بإنشاء بناء جملة لـ crontabs. تسهل مواقع الويب هذه إنشاء تعبير crontab دون الحاجة إلى تذكر بناء الجملة. على الرغم من وجود العديد من مواقع الويب المتاحة لمولدات بناء الجملة مثل crontabgenerator.com و crontab-generator.org ، و cronmaker.com . الشيء الذي أفضله في الغالب ووجدته مفيدًا هو ملف crontab.guru . استنادًا إلى إدخال المستخدم ، يقوم بإنشاء تعبير crontab يمكنك نسخه ولصقه في ملف crontab.

استنتاج

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