الأخبار التكنولوجية والاستعراضات والنصائح!

Crontab في Linux – مع أمثلة وأدوات في الوقت الفعلي

دعنا نستكشف crontab وأوامره وعملياته المختلفة المرتبطة بـ Crontab.

سنتعلم كيفية جدولة المهام باستخدام أداة cron ، وأخيرًا سنناقش أيضًا بعض الأدوات عبر الإنترنت التي تساعدنا في تنسيق أوامر cron واختبارها.

أصل

Crontab تعني “طاولة كرون”. كلمة كرون مأخوذة من الكلمة اليونانية كرونوس التي تعني الوقت. Crontab هي عملية خفية للنظام تقوم تلقائيًا بتنفيذ مهام ووظائف معينة وفقًا للوقت المحدد.

استخدم حالات

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

باستخدام cron ، يمكن للمسؤول جدولة وظيفة للتشغيل في وقت ويوم محددين.

لذلك دعونا نرى كيف يمكننا إعداد هذا.

بناء جملة Crontab

لتشغيل قائمة الأوامر ، تقرأ الأداة المساعدة cron ملفات التكوين. لتفسير الصفوف في جداول تكوين crontab ، فإنه يتبع صيغة Crontab. يحتوي Crontab على ستة حقول ، وتحدد الحقول الخمسة الأولى (1-5) تاريخ ووقت التنفيذ. الحقل الأخير ، أي. الحقل السادس ، يمكن أن يكون اسم مستخدم و / أو مهمة / وظيفة / أمر / برنامج نصي للتشغيل.

* * * * * USER_NAME COMMAND / SCRIPT-TO-EXECUTE

│ │ │ │ ││ │ │ │ ││ │ │ │ | _________ يوم من الأسبوع (0-6) (0 هو الأحد ، أو اسم الاستخدام) │ │ │ | ____________ الشهر (1-12) ، * يعني كل شهر│ │ | ______________ يوم من الشهر (1 – 31) ، * تعني كل يوم│ | ________________ ساعة (0-23) ، * تعني كل ساعة | ______________________ دقيقة (0-59) ، * تعني كل دقيقة

ملحوظات:

  • النجمة
  • يستخدم لمطابقة جميع القيم الممكنة للحقل. على سبيل المثال ، تتطابق علامة النجمة المستخدمة في حقل الساعة مع كل ساعة أو تتطابق علامة النجمة في حقل الشهر مع كل شهر.
  • اسم المستخدم اختياري (متاح فقط إذا كان ملف crontab للنظام)

    مثال:

    دعونا نفهم بناء الجملة أعلاه مع بعض الأمثلة

    0 5 * * * / scripts/job.sh

    1. جدولة cron للتشغيل في 05.00 يوميا

    0 6.18 * * * / scripts/job.sh

    2. حدد موعدًا لتشغيل cron مرتين يوميًا في 06.00 و 18.00

    * * * * * / scripts/job.sh

    3. جدولة cron للتشغيل كل دقيقة

    0 19 * * mon /scripts/job.sh

    4. جدولة كرون للتشغيل كل يوم إثنين في 19.00.

    * / 10 * * * * / scripts/job.sh

    5. جدولة كرون للتشغيل كل 15 دقيقة.

    * * * feb ، jun ، oct * /script/job.sh

    6. جدولة cron للتشغيل في الأشهر المحددة

    25 7 4 3 * /home/script/backup.sh

    7. قم بتشغيل البرنامج النصي shell /home/script/backup.sh في 4 مارس في 07:25

    8. جدولة كرون للتشغيل كل 30 ثانية

  • لأننا لا نملك السيطرة على الثواني في Crontab ، ولكن يمكننا تحقيق ذلك من خلال أقل من عملية من خطوتين.
  • * * * * * /home/scripts/script.sh

  • أولاً ، دعنا نحدد مهمة يتم تشغيلها كل دقيقة.
  • * * * * * ينام 30 ؛ /home/scripts/script.sh

    لنستخدم الآن أمر السكون لإيقاف التنفيذ مؤقتًا لمدة 30 ثانية.

    ستوقف المهمة المذكورة أعلاه التنفيذ لمدة 30 ثانية وستستأنف مرة أخرى.

    نوع ملفات تكوين Cron

    يوجد نوعان من ملفات تكوين Cron:

    نظام UNIX / Linux Crontab

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

    مستخدم Crontab

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

    كيف يعمل؟ تعمل خدمة cron (daemon) في الخلفية وتتحقق باستمرار (كل دقيقة) من ملف / etc / crontab والمجلدات /etc/cron.*/. يتحقق أيضًا من الدليل / var / spool / cron /. يتم تنفيذ الأوامر بواسطة كرون

    عندما تتطابق حقول الدقيقة والساعة والشهر مع الوقت الحالي ، ويتطابق حقل واحد على الأقل من حقلي اليومين (يوم من الشهر أو يوم من أيام الأسبوع) مع اليوم الحالي.

    أوامر أساسية

    قائمة وظائف Cron الحالية

    كرونتاب -l

    يمكننا سرد جميع وظائف Cron دون فتح ملف تكوين crontab باستخدام الأمر أدناه

    [[email protected] ~]# crontab -l no crontab لـ adminvista.com
    [[email protected] ~]#

    إذا لم تكن هناك وظيفة موجودة ، فستعيد الإخراج كـ

    [[email protected] ~]# crontab -l # قم بتحرير هذا الملف لتقديم المهام التي سيتم تشغيلها بواسطة cron. # # يجب تحديد كل مهمة للتشغيل من خلال سطر واحد # يشير إلى حقول مختلفة عندما يتم تشغيل المهمة # وما هو الأمر الذي يجب تشغيله للمهمة # # لتحديد الوقت الذي يمكنك تقديم قيم ملموسة لمدة # دقيقة (م) ، ساعة (ساعة) ، يوم من الشهر (دوم) ، شهر (يوم) ، # ويوم من الأسبوع (داو) أو استخدم “*” في هذه الحقول (لـ “أي”). # # لاحظ أن المهام سوف تبدأ على أساس نظام cron # فكرة الخفي للوقت و المناطق الزمنية. # # يتم إرسال إخراج مهام crontab (بما في ذلك الأخطاء) عبر # بريد إلكتروني إلى المستخدم الذي ينتمي إليه ملف crontab (ما لم تتم إعادة توجيهه). # # على سبيل المثال ، يمكنك تشغيل نسخة احتياطية لجميع حسابات المستخدمين الخاصة بك # الساعة 5 صباحًا كل أسبوع باستخدام: # 0 5 * * 1 tar -zcf /var/backups/home.tgz / home / # # لمزيد من المعلومات راجع الصفحات اليدوية من crontab (5) و cron (8) # # mh dom mon dow الأمر 0 * / 1 * * * /home/account/scripts/updateAccountStatuses.sh 0 * / 1 * * * / home / account / scripts / reActivateAccountStatus.sh
    [[email protected] ~]#

    إذا قام المستخدم بالفعل بإضافة بعض الوظائف ، فسيتم عرضها على النحو التالي.

    جدول cron خاص بالمستخدم ، مما يعني أنه يجب عليك تسجيل الدخول مع مستخدم معين لرؤية قائمة جدول cron.

    قائمة Cron لمستخدم معين

    لسرد المهام المجدولة لمستخدم آخر ، استخدم خيارات مثل -u (مستخدم) و -l (قائمة).

    crontab -u other_username -l

    مثال: crontab -u adminvista.com -l

    إضافة / تعديل إدخالات Crontab

    لتعديل إدخال crontab ، يمكننا استخدام الخيار -e كما هو موضح أدناه.

    كرونتاب -e

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

    إضافة / تعديل إدخالات Crontab لمستخدم معين

    crontab -u another_username -e

    يمكننا تحرير crontab لمستخدم آخر باستخدام الأمر أدناه

    مثال: crontab -u adminvista.com -e

    إزالة Crontab Entry

    استخدم المعلمة -r مع Crontab لحذف الوظائف المجدولة الكاملة دون تأكيد من crontab

    كرونتاب -ر

    crontab -i -r

    [[email protected] ~]# crontab -i -r crontab: هل ترغب حقًا في حذف crontab الخاص بـ adminvista.com؟

    إذا كنت تريد التأكيد قبل حذف الوظائف المجدولة ، فاستخدم -في– الخيار مع -r ، والذي سيطلب التأكيد من المستخدم قبل إزالة crontab الخاص بالمستخدم.

    خيط كرونتاب خاص

    بالإضافة إلى الصيغة أعلاه التي ناقشناها ، يمكننا أيضًا استخدام ثمانية سلاسل خاصة من Crontab. لن يقتصر الأمر على توفير وقتنا فحسب ، بل سيؤدي أيضًا إلى تحسين قابلية القراءة. specialStringDescription@startoverRun مرة واحدة ، بعد بدء التشغيل. @ årligRun مرة واحدة سنويًا ، أي 0 0 1 1 * @ årligenSame @ yearly @ مرة في الشهر ، تشغيل مرة واحدة في الشهر ، أي 0 0 1 * * @ كل أسبوع تشغيل مرة واحدة في الأسبوع ، أي 0 0 * * 0 @ dagligenRun مرة واحدة في اليوم ، أي 0 0 * * * @ midnattSame as @ dagligen @ كل ساعة

    تشغيل مرة واحدة كل ساعة ، أي 0 * * * *

    أمثلة على السلاسل الخاصة لـ Crontab

    1. Crontab لجدولة المهام على أساس سنوي

    yearly /scripts/greeting.sh

    يمكننا تشغيل أكثر من واحد لإرسال تحية العام الجديد ، وسيتم تشغيله في الدقيقة الأولى من كل عام.

    2. Crontab لجدولة المهام التي يتعين أداؤها على أساس شهري.

    تضمين التغريدة

    قد نقوم بتنفيذ ما ورد أعلاه لأداء أنشطة تنظيف معينة في بداية كل شهر.

    وبالمثل ، يمكننا استخدام سلاسل Crontab الخاصة الأخرى للأغراض الأسبوعية واليومية والساعة.

    دليل كرون

  • يمكن لمسؤول النظام استخدام جدول cron على مستوى النظام والذي يأتي ضمن دليل cron المحدد مسبقًا الموضح أدناه
  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

    مثال كرونتاب الحقيقي

    دعنا نناقش بعض الأمثلة في الوقت الفعلي التي يستخدمها مسؤول النظام أو متخصص تكنولوجيا المعلومات عادةً.

    إزالة الملفات الفارغة والدليل

    45 0 * * * adminvista.com find / tmp -type f – فارغ – حذف

    أعلاه سيجد تعبير cron الملفات الفارغة والدليل من الدليل / tmp وسيحذفها. ستعمل هذه الوظيفة من الساعة 12.45 مساءً على أساس يومي. نحتاج إلى ذكر اسم المستخدم لأداء هذه الوظيفة. في المثال أعلاه ، ينفذ مستخدم adminvista.com عملية مهمة cron.

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

    * * * * * /home/scripts/backup.sh ؛ /home/scripts/scritp.sh

    يمكن فصل المهام / المهام المتعددة بفاصلة منقوطة (؛) ويمكن تعيينها إلى تعبير cron واحد.

    أداة تنسيق واختبار كرون

    لقد ناقشنا حتى الآن أوامر crontab وبناء الجملة لجدولة مهمة. ولكن ماذا لو لم تكن مسؤول نظام ولم تكن مهمتك هي إعداد Cron بانتظام ، فقد لا يتم تذكر بناء الجملة ويترك مجالًا للخطأ. لا تقلق ، لدينا حل لهذه المشكلة.

    هناك العديد من أدوات تنسيق Cron المتاحة عبر الإنترنت.

    # 1. Cron Job Generator Cron Job Generator

    هي واجهة سهلة الاستخدام للغاية حيث يمكنك تحديد الدقيقة والأيام والمسار للبرنامج النصي لإنشاء crontab.

    لنأخذ مثالًا في الوقت الفعلي حيث أحتاج إلى تشغيل /home/processMonitor.sh كل 5 دقائق من الاثنين إلى الجمعة.

    لذا حصلت على صيغة Cron التي يمكنني وضعها أدناه في crontab عن طريق تشغيل crontab –e

    0،5،10،15،20،25،30،35،40،45،50،55 * * * 1-5 / home/processMonitor.sh

    # 2. إيزيكرون إيزيكرون

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

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

    # 3.مولد Crontab مولد Crontab

    Crontab في Linux - مع أمثلة وأدوات في الوقت الفعلي 1

    هي أداة أخرى مفيدة لإنشاء crontab وباستخدام هذه الأداة يمكنك أيضًا إضافتها إذا كنت تريد حفظ إخراج cron في ملف أو إرساله إلى البريد الإلكتروني.

    # 4. كرونتاب جورو كرونتاب جورو

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

    Crontab في Linux - مع أمثلة وأدوات في الوقت الفعلي 2

    في المثال أدناه ، سيتم تشغيل الوظيفة في الساعة 04:05 ، كل يوم ، كل شهر وكل أسبوع.

    # 5. اختبار CRON اختبار CRON

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

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

    Crontab في Linux - مع أمثلة وأدوات في الوقت الفعلي 3

    دعنا نتحقق من أحد تعبيرات cron 4 3 * / 2 * * التي يجب أن تعمل في الساعة 03:04 (صباحًا) كل يوم. دعنا نتحقق من ذلك من خلال اختبارات كرون.

    خاتمة آمل أن يساعدك ما سبق في اكتساب فهم أفضل لـ Crontab وإنشاء وظائف cron. جدولة الوظائف من خلال Cron هي إحدى المهام العديدة التي يقوم بها مسؤول Linux. إذا كنت مهتمًا بتعلم المهارات المتقدمة ، فاطلع على هذه الدورة

    .