جدولة المهام باستخدام Cron
أتقنوا أداة 'cron' لجدولة تشغيل scripts والأوامر تلقائيًا في أوقات أو فواصل زمنية محددة.
جدولة المهام باستخدام Cron درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
أتمتة المهام باستخدام Cron
مرحبًا بك في عالم الأتمتة! في هذا الدرس، ستتعلم عن cron، وهي أداة قوية في Linux تتيح لك جدولة الأوامر أو البرامج النصية لتعمل تلقائيًا في أوقات محددة.
تخيل إعداد نسخ احتياطية يومية أو فحوصات للنظام كل ساعة من دون أن تحرك ساكنًا؛ هذه هي مهمة cron!
ملف Crontab الشخصي
يمتلك كل مستخدم في نظام Linux ملف crontab (جدول cron) خاصًا به. يخزن هذا الملف جميع المهام المجدولة الخاصة بك.
لتحرير ملف crontab الشخصي، ستستخدم الأمر crontab -e. يفتح هذا الأمر الملف في محرر النصوص الافتراضي لديك، ليكون جاهزًا لإضافة مهام جديدة.
إدخال Crontab: حقول الوقت
يتكوّن إدخال crontab من ستة أجزاء. تحدد الأجزاء الخمسة الأولى متى سيُشغَّل أمرك، وتفصل بينها مسافات:
- الدقيقة:
0-59 - الساعة:
0-23(يمثل 0 منتصف الليل) - يوم الشهر:
1-31 - الشهر:
1-12(أوJan-Dec) - يوم الأسبوع:
0-7(يمثل 0 أو 7 يوم الأحد، ويمثل 1 يوم الاثنين)
إدخال Crontab: الأمر
الجزء السادس والأخير من إدخال crontab هو الأمر أو البرنامج النصي الذي تريد تنفيذه.
من الضروري استخدام المسارات المطلقة للأوامر والبرامج النصية هنا (مثلًا، /usr/bin/python بدلًا من python فقط). تعمل مهام Cron في بيئة محدودة، لذلك قد لا يكون PATH المعتاد متاحًا.
الأحرف الخاصة في Crontab
لجعل جداولك مرنة، تستخدم cron أحرفًا خاصة:
*(النجمة): تطابق جميع القيم الممكنة (مثل كل دقيقة أو كل ساعة).,(الفاصلة): تفصل قائمة من القيم (مثل1,15للدقيقتين 1 و15).-(الواصلة): تحدد نطاقًا من القيم (مثل9-17للساعات من 9 إلى 17)./(الشرطة المائلة): تحدد قيم التدرج (مثل*/10كل 10 دقائق).
اختصارات الجدولة المحددة مسبقًا
لتلبية احتياجات الجدولة الشائعة، توفر cron اختصارات مريحة تستبدل حقول الوقت الخمسة الأولى:
@reboot: يُشغَّل مرة واحدة بعد إعادة تشغيل النظام.@yearly(أو@annually): يُشغَّل مرة واحدة سنويًا (0 0 1 1 *).@monthly: يُشغَّل مرة واحدة شهريًا (0 0 1 * *).@weekly: يُشغَّل مرة واحدة أسبوعيًا (0 0 * * 0).@daily(أو@midnight): يُشغَّل مرة واحدة يوميًا (0 0 * * *).@hourly: يُشغَّل مرة واحدة كل ساعة (0 * * * *).
تطبيق عملي: جدولة برنامج نصي بسيط
لننشئ برنامجًا نصيًا بسيطًا يسجل رسالة ترحيب، ثم نُجدوله ليعمل يوميًا في الساعة 10:00 صباحًا.
- إنشاء البرنامج النصي (مثلًا،
~/greet.sh): - جعله قابلًا للتنفيذ:
chmod +x ~/greet.sh - إضافته إلى crontab (
crontab -e):0 10 * * * /home/user/greet.sh
يعني هذا الإدخال: عند الدقيقة 0، والساعة 10 (10 صباحًا)، من كل يوم في الشهر، وفي كل شهر، وكل يوم من أيام الأسبوع، شغّل/home/user/greet.sh.
#!/bin/bash
# This script logs a greeting to a temporary file.
echo "Hello from Cron! The time is $(date)" >> /tmp/cron_greeting.logإدارة مهام Cron الخاصة بك
بعد إضافة مهام Cron، ستحتاج إلى إدارتها:
- لـعرض إدخالات crontab الحالية:
crontab -l - لـإزالة جميع إدخالات crontab (استخدم هذا بحذر شديد، إذ لا يمكن التراجع عنه!):
crontab -r
راجع دائمًا ملف crontab باستخدام crontab -l بعد إجراء التغييرات للتأكد من صحة إدخالاتك.
متغيرات البيئة في Cron
تذكّر أن مهام cron تعمل في بيئة محدودة. وهذا يعني أنها غالبًا لا تملك متغيرات البيئة نفسها (مثل PATH) المتاحة في الصدفة التفاعلية.
إذا كان برنامجك النصي يعتمد على أوامر محددة، فاستخدم مساراتها المطلقة أو عرّف متغيرات البيئة اللازمة مباشرةً داخل ملف crontab في أعلاه، مثل PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin.
تحدي صياغة Crontab
تحتاج إلى جدولة برنامج نصي اسمه /home/user/daily_report.sh ليعمل في الساعة 9:15 صباحًا كل يوم من أيام الأسبوع (من الاثنين إلى الجمعة). أي إدخال crontab صحيح؟
مراجعة: إتقان جدولة Cron
أحسنت! لقد أتقنت الآن أساسيات cron لجدولة المهام.
- تعلمت عن ملف
crontabوكيفية تحريره باستخدامcrontab -e. - أصبحت تفهم الحقول الستة لإدخال cron، بما في ذلك حقول الوقت والأمر.
- استكشفت الأحرف الخاصة والاختصارات المحددة مسبقًا للجدولة المرنة.
- أصبحت تعرف كيفية إدارة مهامك باستخدام
crontab -lوcrontab -r. - تعلمت أيضًا أهمية المسارات المطلقة ومتغيرات البيئة في سياق cron.
والآن انطلق وأتمت مهامك!
الأسئلة الشائعة
هل درس «جدولة المهام باستخدام Cron» مجاني؟
نعم — نص درس «جدولة المهام باستخدام Cron» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «جدولة المهام باستخدام Cron»؟
أتقنوا أداة 'cron' لجدولة تشغيل scripts والأوامر تلقائيًا في أوقات أو فواصل زمنية محددة. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «جدولة المهام باستخدام Cron»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- جدولة المهام باستخدام Cron
- أتمتة إدارة النظام
- مشروع Scripting متقدم
- التدوير والتنظيف الآليان للسجلات