0Pricing
Linux Server Deployment & SSH Mastery · درس

المهام المجدولة باستخدام Cron

أتمت مهام الخادم المتكررة عبر إنشاء مهام cron وإدارتها، لضمان تشغيل البرامج النصية والأوامر في الفواصل الزمنية المحددة

المهام المجدولة باستخدام Cron درس مجاني في Linux Server Deployment & SSH Mastery على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Linux Server Deployment & SSH Mastery، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.

لماذا نؤتمت مهام الخادم؟

قد تكون المهام اليدوية على الخادم متكررة وعرضة للخطأ البشري. تساعدك الأتمتة على توفير الوقت، وتضمن تنفيذ المهام باستمرار وبطريقة متسقة.

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

هنا تأتي فائدة أدوات الجدولة! فهي تتيح لخادمك تنفيذ المهام تلقائيًا في أوقات أو فواصل زمنية محددة، مما يتيح لك التفرغ لأعمال أكثر أهمية.

تعرّف على Cron: مجدول خادمك

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

تُسمى هذه المهام المجدولة cron jobs. ويمكن لكل مستخدم في النظام امتلاك قائمة cron jobs خاصة به، مخزنة في ملف خاص يسمى crontab.

تحرير crontab الخاص بك

لإدارة cron jobs الشخصية، تستخدم الأمر crontab.

  • لتحرير ملف crontab، اكتب: crontab -e
  • لسرد cron jobs الحالية، اكتب: crontab -l
  • لإزالة جميع cron jobs، اكتب: crontab -r (استخدمه بحذر!)

عند تشغيل crontab -e، سيفتح ملف crontab في محرر النصوص الافتراضي لديك، وغالبًا ما يكون nano أو vi.

صيغة crontab: حقول الوقت

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

الصيغة هي:

minute hour day_of_month month day_of_week command
  • الدقيقة: 0-59
  • الساعة: 0-23 (الرقم 0 يعني منتصف الليل)
  • يوم الشهر: 1-31
  • الشهر: 1-12 (أو Jan-Dec)
  • يوم الأسبوع: 0-7 (الرقم 0 أو 7 يعني الأحد، والرقم 1 يعني الاثنين)

صيغة crontab: العلامات النجمية والنطاقات

لا تحتاج دائمًا إلى أرقام دقيقة. يوفر Cron أحرفًا خاصة تمنحك مرونة أكبر:

  • * (العلامة النجمية): تطابق كل قيمة ممكنة لذلك الحقل. فمثلًا، تعني * في حقل الدقائق «كل دقيقة».
  • - (الشرطة): تحدد نطاقًا. فمثلًا، تعني 9-17 في حقل الساعات «الساعات من 9 إلى 17».
  • , (الفاصلة): تحدد قائمة من القيم. فمثلًا، يمكن استخدام Mon,Wed,Fri أو 1,3,5 لأيام الأسبوع.
  • / (الشرطة المائلة): تحدد قيم التدرج. فمثلًا، تعني */5 في حقل الدقائق «كل 5 دقائق».

صيغة crontab - أمثلة عملية

لنلقِ نظرة على بعض الأمثلة الشائعة لترسيخ فهمك:

  • * * * * * /path/to/script.sh
    يُشغّل الأمر كل دقيقة.
  • 0 3 * * * /usr/bin/backup.sh
    يُشغّل الأمر يوميًا في الساعة 3:00 صباحًا.
  • 0 9-17 * * 1-5 /usr/local/bin/check_service.py
    يُشغّل الأمر كل ساعة من 9 صباحًا إلى 5 مساءً، من الاثنين إلى الجمعة.
  • */15 * * * * echo "Hello, CoddyKit!"
    يُشغّل الأمر كل 15 دقيقة.

تذكر استبدال /path/to/script.sh بمسار الأمر أو البرنامج النصي الفعلي.

سلاسل crontab الخاصة

بالنسبة إلى احتياجات الجدولة الشائعة جدًا، يوفر Cron سلاسل خاصة أسهل قراءة من الصيغة المكونة من خمسة حقول:

  • @reboot: يُشغّل الأمر مرة واحدة عند بدء التشغيل.
  • @hourly: يُشغّل الأمر مرة كل ساعة، في بداية الساعة.
  • @daily: يُشغّل الأمر مرة يوميًا، عند منتصف الليل.
  • @weekly: يُشغّل الأمر مرة أسبوعيًا، عند منتصف الليل يوم الأحد.
  • @monthly: يُشغّل الأمر مرة شهريًا، عند منتصف الليل في اليوم الأول من الشهر.
  • @yearly (أو @annually): يُشغّل الأمر مرة سنويًا، عند منتصف الليل في الأول من يناير.

تُعد هذه السلاسل مناسبة للمهام البسيطة المتكررة.

متغيرات البيئة والمسارات

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

لتجنب المشكلات:

  • استخدم دائمًا المسارات المطلقة للأوامر والبرامج النصية، مثل /usr/bin/php بدلًا من php.
  • يمكنك تعريف متغير PATH مباشرةً داخل ملف crontab، مثل PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • بدلًا من ذلك، عيّن متغيرات البيئة مباشرةً داخل البرنامج النصي.

معالجة المخرجات وتسجيلها

يحاول Cron افتراضيًا إرسال أي مخرجات (stdout وstderr) من cron job عبر البريد الإلكتروني إلى المستخدم الذي يملك crontab. وإذا لم يكن لديك نظام بريد إلكتروني مُعد، فقد تُفقد هذه المخرجات أو تؤدي إلى امتلاء ملفات السجل.

من أفضل الممارسات إعادة توجيه المخرجات صراحةً:

  • لإهمال جميع المخرجات: command > /dev/null 2>&1
  • لإلحاق المخرجات بملف سجل: command >> /var/log/myjob.log 2>&1

يُعيد الجزء 2>&1 توجيه الخطأ القياسي (2) إلى الموقع نفسه الذي يذهب إليه الإخراج القياسي (1).

Cron على مستوى النظام مقابل crontab المستخدمين

ركزنا على crontab المستخدمين الشخصية، التي تُدار باستخدام crontab -e. وتناسب هذه الملفات مهام المستخدم الفردية.

أما بالنسبة إلى المهام على مستوى النظام، فعادةً ما يستخدم المسؤولون:

  • /etc/crontab: ملف crontab الرئيسي للنظام، ويسمح بتشغيل المهام بصلاحيات مستخدمين محددين.
  • /etc/cron.d/: دليل للملفات المنفصلة الخاصة بـ cron، وغالبًا ما تثبتها التطبيقات.
  • /etc/cron.hourly/ و/etc/cron.daily/ وغيرهما: أدلة توضع فيها البرامج النصية لتشغيلها في الفواصل الزمنية المحددة بواسطة Cron النظام.

توفر هذه الخيارات على مستوى النظام تحكمًا أكبر في الأتمتة على مستوى الخادم.

اختبر معرفتك بـ Cron

لقد تعلمت أساسيات صيغة crontab. لنرَ ما إذا كان بإمكانك تفسير cron job هذه.

مراجعة: الأتمتة باستخدام Cron

لقد أتقنت الآن أساسيات جدولة المهام باستخدام Cron!

إليك ما تناولناه:

  • ما هو Cron: مجدول للمهام يعتمد على الوقت.
  • Crontab: ملفك الشخصي لتعريف cron jobs.
  • الصيغة: فهم حقول الوقت الخمسة والأحرف الخاصة (* و- و, و/).
  • السلاسل الخاصة: اختصارات مثل @hourly و@reboot.
  • أفضل الممارسات: استخدام المسارات المطلقة ومعالجة المخرجات.

باستخدام Cron، يمكنك أتمتة المهام الروتينية، مما يضمن تشغيل خادمك بسلاسة وكفاءة!

الأسئلة الشائعة

هل درس «المهام المجدولة باستخدام Cron» مجاني؟

نعم — نص درس «المهام المجدولة باستخدام Cron» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Linux Server Deployment & SSH Mastery، انتقل إلى CoddyKit PRO. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.

ماذا ستتعلم في «المهام المجدولة باستخدام Cron»؟

أتمت مهام الخادم المتكررة عبر إنشاء مهام cron وإدارتها، لضمان تشغيل البرامج النصية والأوامر في الفواصل الزمنية المحددة تتمرن على Linux Server Deployment & SSH Mastery مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Linux Server Deployment & SSH Mastery؟

لا تُشترط خبرة سابقة. Linux Server Deployment & SSH Mastery على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «المهام المجدولة باستخدام Cron»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Linux Server Deployment & SSH Mastery هذا؟

نعم. كل درس في Linux Server Deployment & SSH Mastery يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إدارة المستخدمين والمجموعات
  2. مراقبة عمليات النظام
  3. المهام المجدولة باستخدام Cron
  4. إدارة خدمات النظام باستخدام systemd
← العودة إلى Linux Server Deployment & SSH Mastery