في هذا البرنامج التعليمي ، سنزودك بالمقدمة الأساسية لكل ما تحتاج إلى فهمه لجدولة وظيفة مع cron. يتضمن ذلك البنية الأساسية لـ cron ، وتحرير ملف crontab ، وجدولة مهمة باستخدام cron مع بعض الأمثلة ، وعرض وظيفة cron ، وما إلى ذلك.
أساسيات كرون جوب
دعونا نفهم بعض أساسيات وظيفة cron.
ما هو كروند؟
Crond هو البرنامج الخفي في نظام Linux الذي يعمل في الخلفية ويتحقق كل دقيقة لمعرفة ما إذا كان هناك أي وظيفة مجدولة في ذلك الوقت. إذا كان هناك ، فإنه يؤدي تلك الوظيفة ، وإلا فإنه يظل غير نشط.
بناء جملة مهمة كرون
تكون صيغة مهمة cron كما يلي:
* * * * *أمر/النصي
من اليسار:
- الأول * يتوافق مع الدقائق (0-59)
- الثاني * يتوافق مع الساعات (0-23)
- الثالث * يتوافق مع يوم من الشهر (1-31)
- الرابع * يتوافق مع الشهر من العام (1-12)
- الخامس * يتوافق مع يوم الأسبوع (0-6 ، الأحد إلى السبت)
لتحديد قيم متعددة في حقل ، استخدم رموز المشغل التالية:
- النجمة (*): لتحديد كل القيم الممكنة للحقل
- اندفاع (-): إلى س حدد مجموعة من القيم
- الفاصلة (،): لتحديد قائمة القيم
- فاصل (/): لتحديد قيمة الخطوة
تحرير ملف 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:
* /خمسة عشر * * * *باستخدام السلاسل
يمكن أيضًا استخدام السلاسل التالية لتحديد الوظيفة:
- @ساعيا: لتنفيذ عمل مرة كل ساعة أي. 0 * * * *
- @منتصف الليل: لتنفيذ وظيفة مرة واحدة كل يوم ، أي ، 0 0 * * *
- @اليومي: نفس منتصف الليل
- @أسبوعي: لتنفيذ عمل مرة كل أسبوع أي. 0 0 * * 0
- @شهريا: لتنفيذ عمل مرة كل شهر أي. 0 0 1 * *
- @سنويا: لتنفيذ وظيفة مرة كل عام ، أي ، 0 0 1 1 *
- @سنوي: مثلannually
- @اعادة التشغيل: لتنفيذ وظيفة مرة واحدة في كل شركة ناشئة
على سبيل المثال ، لتشغيل برنامج نصي أو أمر كل أسبوع ، سيكون الإدخال في ملف 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 وإنشاء نسخة احتياطية وإزالتها إذا لم تعد هناك حاجة إليها.