ديف أوبس

شرح تقنية cron لجدولة المهام

تقنية cron لجدولة المهام في أنظمة لينكس/يونكس

تعد تقنية “cron” واحدة من الأدوات الأكثر استخدامًا في أنظمة التشغيل المعتمدة على Unix وLinux لجدولة وتنفيذ المهام تلقائيًا في فترات زمنية معينة. يعتبر cron من الأدوات المهمة في إدارة الأنظمة، حيث يتيح للمستخدمين تنفيذ الأوامر أو السكربتات بشكل دوري دون الحاجة إلى التدخل اليدوي. في هذا المقال، سنتناول مفهوم cron، آلية عمله، وكيفية استخدامه، بالإضافة إلى بعض الأمثلة العملية.

ما هي تقنية cron؟

تقنية “cron” هي خدمة مجدولة تعمل في الخلفية في أنظمة Linux وUnix وتقوم بتشغيل الأوامر والبرامج بشكل تلقائي في أوقات أو تواريخ محددة. يعتمد cron على مفهوم “المهام المجدولة”، التي تُنفَّذ في الوقت المحدد وفقًا لإعدادات دقيقة يتم تحديدها بواسطة المستخدم. يمكن استخدام cron لتنفيذ مجموعة متنوعة من المهام، مثل نسخ الملفات احتياطيًا، إرسال البريد الإلكتروني بشكل دوري، أو تحديث الأنظمة بشكل تلقائي.

الملفات المرتبطة بـ cron

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

  2. خدمة cron: هي الخدمة التي تراقب المهام المجدولة وتنفذها في الأوقات المحددة. وتعمل هذه الخدمة بشكل دائم في الخلفية.

مفهوم الـ Cron Daemon

الـ “cron daemon” (أو ببساطة “cron”) هو عملية تعمل بشكل دائم في النظام، وهي المسؤولة عن مراقبة تنفيذ الأوامر المجدولة. تراقب هذه العملية الملفات التي تحتوي على جدول المهام المجدولة (crontab)، وتنفذ الأوامر في الوقت المحدد. هذا يسمح للمستخدمين بتحديد أوقات دقيقة لتنفيذ الأوامر والبرامج بشكل دوري، سواء كان ذلك يوميًا، أسبوعيًا، شهريًا، أو حسب حاجة المستخدم.

بنية ملف crontab

يتم تحرير ملف crontab باستخدام أمر crontab -e. عند فتح الملف، ستجد أنه يحتوي على السطور التي تحدد جدول المهام. يتكون كل سطر من 6 عناصر رئيسية، تفصل بينها مسافات أو علامات تبويب. تتضمن هذه العناصر:

  1. الدقيقة (0 – 59)

  2. الساعة (0 – 23)

  3. اليوم في الشهر (1 – 31)

  4. الشهر (1 – 12)

  5. اليوم في الأسبوع (0 – 6) حيث 0 هو يوم الأحد

  6. الأمر الذي سيتم تنفيذه

مثال على سطر في crontab:

arduino
30 2 * * 1 /home/user/script.sh
  • 30: الدقيقة (30)

  • 2: الساعة (2 صباحًا)

  • *: كل يوم من الشهر

  • *: كل شهر

  • 1: يوم الإثنين (من الأسبوع)

  • /home/user/script.sh: المسار الكامل للسكريبت أو الأمر الذي سيتم تنفيذه.

أنواع التكرار في cron

يتم تحديد تكرار المهام في cron باستخدام القيم الموجودة في ملف crontab. إليك بعض الأنماط الشائعة:

  1. التكرار اليومي:
    لتنفيذ مهمة كل يوم في نفس الوقت:

    pgsql
    0 3 * * * /path/to/command

    هذا السطر يعني أن الأمر سيتم تنفيذه في الساعة 3:00 صباحًا كل يوم.

  2. التكرار الأسبوعي:
    لتنفيذ مهمة كل يوم اثنين من كل أسبوع:

    pgsql
    0 2 * * 1 /path/to/command

    هذا يعني أن المهمة ستنفذ في الساعة 2:00 صباحًا كل يوم اثنين.

  3. التكرار الشهري:
    لتنفيذ مهمة في أول يوم من كل شهر:

    pgsql
    0 0 1 * * /path/to/command
  4. التكرار كل دقيقة:
    لتنفيذ مهمة كل دقيقة:

    pgsql
    * * * * * /path/to/command

التعديلات المتقدمة في cron

  1. النطاقات الزمنية:
    يمكن تحديد نطاقات زمنية باستخدام علامات النطاق. على سبيل المثال:

    pgsql
    0 9-17 * * * /path/to/command

    هذا يعني أن الأمر سيتم تنفيذه كل ساعة بين الساعة 9 صباحًا و 5 مساءً.

  2. التكرار في فترات زمنية معينة:
    يمكن استخدام الفواصل لتحديد المهام التي تنفذ في فترات زمنية معينة:

    ruby
    */5 * * * * /path/to/command

    هذا يعني أن المهمة ستنفذ كل 5 دقائق.

  3. استخدام أكثر من يوم أو شهر:
    يمكن تنفيذ المهام في أكثر من يوم أو شهر عن طريق الفصل باستخدام الفواصل:

    pgsql
    0 12 * 1,6 * /path/to/command

    سيعمل الأمر في الساعة 12:00 ظهراً في شهري يناير ويونيو.

إدارة مهام cron

  1. عرض المهام المجدولة:
    لعرض المهام المجدولة للمستخدم الحالي، يمكن استخدام الأمر:

    nginx
    crontab -l
  2. تحرير ملف crontab:
    لتحرير أو تعديل المهام المجدولة، استخدم:

    nginx
    crontab -e
  3. إزالة مهام cron:
    لحذف جميع المهام المجدولة للمستخدم، استخدم:

    nginx
    crontab -r

الفرق بين cron وat

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

استخدام cron في سكربتات وخدمات النظام

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

إشعارات cron

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

ini

سيؤدي هذا إلى إرسال أي إخراج من المهمة المجدولة إلى عنوان البريد الإلكتروني المحدد.

الأخطاء الشائعة في استخدام cron

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

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

  3. مشاكل في الأذونات:
    يجب أن يمتلك المستخدم الأذونات الكافية لتنفيذ الأوامر المجدولة. في حال كانت المهمة تتطلب صلاحيات مرتفعة، يجب استخدام sudo أو ضبط الأذونات المناسبة.

خلاصة

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