تقنية cron لجدولة المهام في أنظمة لينكس/يونكس
تعد تقنية “cron” واحدة من الأدوات الأكثر استخدامًا في أنظمة التشغيل المعتمدة على Unix وLinux لجدولة وتنفيذ المهام تلقائيًا في فترات زمنية معينة. يعتبر cron من الأدوات المهمة في إدارة الأنظمة، حيث يتيح للمستخدمين تنفيذ الأوامر أو السكربتات بشكل دوري دون الحاجة إلى التدخل اليدوي. في هذا المقال، سنتناول مفهوم cron، آلية عمله، وكيفية استخدامه، بالإضافة إلى بعض الأمثلة العملية.
ما هي تقنية cron؟
تقنية “cron” هي خدمة مجدولة تعمل في الخلفية في أنظمة Linux وUnix وتقوم بتشغيل الأوامر والبرامج بشكل تلقائي في أوقات أو تواريخ محددة. يعتمد cron على مفهوم “المهام المجدولة”، التي تُنفَّذ في الوقت المحدد وفقًا لإعدادات دقيقة يتم تحديدها بواسطة المستخدم. يمكن استخدام cron لتنفيذ مجموعة متنوعة من المهام، مثل نسخ الملفات احتياطيًا، إرسال البريد الإلكتروني بشكل دوري، أو تحديث الأنظمة بشكل تلقائي.
الملفات المرتبطة بـ cron
-
ملف crontab: هو الملف الأساسي الذي يحتوي على تعليمات cron لتحديد المهام المجدولة. يمكن لكل مستخدم في النظام إنشاء ملف crontab الخاص به. يحتوي كل ملف crontab على سلسلة من السطور التي تحدد متى وأين يتم تنفيذ الأوامر.
-
خدمة cron: هي الخدمة التي تراقب المهام المجدولة وتنفذها في الأوقات المحددة. وتعمل هذه الخدمة بشكل دائم في الخلفية.
مفهوم الـ Cron Daemon
الـ “cron daemon” (أو ببساطة “cron”) هو عملية تعمل بشكل دائم في النظام، وهي المسؤولة عن مراقبة تنفيذ الأوامر المجدولة. تراقب هذه العملية الملفات التي تحتوي على جدول المهام المجدولة (crontab)، وتنفذ الأوامر في الوقت المحدد. هذا يسمح للمستخدمين بتحديد أوقات دقيقة لتنفيذ الأوامر والبرامج بشكل دوري، سواء كان ذلك يوميًا، أسبوعيًا، شهريًا، أو حسب حاجة المستخدم.
بنية ملف crontab
يتم تحرير ملف crontab باستخدام أمر crontab -e. عند فتح الملف، ستجد أنه يحتوي على السطور التي تحدد جدول المهام. يتكون كل سطر من 6 عناصر رئيسية، تفصل بينها مسافات أو علامات تبويب. تتضمن هذه العناصر:
-
الدقيقة (0 – 59)
-
الساعة (0 – 23)
-
اليوم في الشهر (1 – 31)
-
الشهر (1 – 12)
-
اليوم في الأسبوع (0 – 6) حيث 0 هو يوم الأحد
-
الأمر الذي سيتم تنفيذه
مثال على سطر في crontab:
arduino30 2 * * 1 /home/user/script.sh
-
30: الدقيقة (30)
-
2: الساعة (2 صباحًا)
-
*: كل يوم من الشهر
-
*: كل شهر
-
1: يوم الإثنين (من الأسبوع)
-
/home/user/script.sh: المسار الكامل للسكريبت أو الأمر الذي سيتم تنفيذه.
أنواع التكرار في cron
يتم تحديد تكرار المهام في cron باستخدام القيم الموجودة في ملف crontab. إليك بعض الأنماط الشائعة:
-
التكرار اليومي:
لتنفيذ مهمة كل يوم في نفس الوقت:pgsql0 3 * * * /path/to/commandهذا السطر يعني أن الأمر سيتم تنفيذه في الساعة 3:00 صباحًا كل يوم.
-
التكرار الأسبوعي:
لتنفيذ مهمة كل يوم اثنين من كل أسبوع:pgsql0 2 * * 1 /path/to/commandهذا يعني أن المهمة ستنفذ في الساعة 2:00 صباحًا كل يوم اثنين.
-
التكرار الشهري:
لتنفيذ مهمة في أول يوم من كل شهر:pgsql0 0 1 * * /path/to/command -
التكرار كل دقيقة:
لتنفيذ مهمة كل دقيقة:pgsql* * * * * /path/to/command
التعديلات المتقدمة في cron
-
النطاقات الزمنية:
يمكن تحديد نطاقات زمنية باستخدام علامات النطاق. على سبيل المثال:pgsql0 9-17 * * * /path/to/commandهذا يعني أن الأمر سيتم تنفيذه كل ساعة بين الساعة 9 صباحًا و 5 مساءً.
-
التكرار في فترات زمنية معينة:
يمكن استخدام الفواصل لتحديد المهام التي تنفذ في فترات زمنية معينة:ruby*/5 * * * * /path/to/commandهذا يعني أن المهمة ستنفذ كل 5 دقائق.
-
استخدام أكثر من يوم أو شهر:
يمكن تنفيذ المهام في أكثر من يوم أو شهر عن طريق الفصل باستخدام الفواصل:pgsql0 12 * 1,6 * /path/to/commandسيعمل الأمر في الساعة 12:00 ظهراً في شهري يناير ويونيو.
إدارة مهام cron
-
عرض المهام المجدولة:
لعرض المهام المجدولة للمستخدم الحالي، يمكن استخدام الأمر:nginxcrontab -l -
تحرير ملف crontab:
لتحرير أو تعديل المهام المجدولة، استخدم:nginxcrontab -e -
إزالة مهام cron:
لحذف جميع المهام المجدولة للمستخدم، استخدم:nginxcrontab -r
الفرق بين cron وat
يتم استخدام cron لجدولة المهام المتكررة، بينما يُستخدم أمر at لجدولة مهام لمرة واحدة. على سبيل المثال، إذا كنت ترغب في تنفيذ أمر في وقت معين لمرة واحدة فقط، فإن at هو الخيار الأفضل.
استخدام cron في سكربتات وخدمات النظام
يُعتبر cron أداة مثالية لتشغيل خدمات الخلفية مثل النسخ الاحتياطي، التحديثات التلقائية، أو حتى إرسال التقارير عبر البريد الإلكتروني بشكل دوري. يمكن دمج cron بسهولة في السكربتات البرمجية لضمان أن العمليات المهمة تتم بشكل دوري دون الحاجة إلى تدخل بشري.
إشعارات cron
بإمكانك أيضًا الحصول على إشعارات عبر البريد الإلكتروني عند تنفيذ الأوامر. عند استخدام cron، يمكنك توجيه إخراج الأمر إلى البريد الإلكتروني للمستخدم عبر إضافة السطر التالي في ملف crontab:
سيؤدي هذا إلى إرسال أي إخراج من المهمة المجدولة إلى عنوان البريد الإلكتروني المحدد.
الأخطاء الشائعة في استخدام cron
-
مشكلة المسار:
قد يواجه المستخدمون مشكلة في تحديد المسار الصحيح للأوامر أو السكربتات. من المهم أن يتم تحديد المسار الكامل للأوامر في ملف crontab، حيث أن cron لا يتعرف على المتغيرات البيئية بشكل افتراضي. -
إعدادات الوقت غير صحيحة:
من الشائع أن يخطئ المستخدمون في تحديد الوقت أو التاريخ بشكل غير دقيق. لذا يجب التأكد من صحة القيم في ملف crontab لتجنب تنفيذ المهام في الأوقات غير المرغوبة. -
مشاكل في الأذونات:
يجب أن يمتلك المستخدم الأذونات الكافية لتنفيذ الأوامر المجدولة. في حال كانت المهمة تتطلب صلاحيات مرتفعة، يجب استخدام sudo أو ضبط الأذونات المناسبة.
خلاصة
تقنية cron هي أداة قوية وفعالة لإدارة وتنفيذ المهام المجدولة تلقائيًا على أنظمة Unix وLinux. تتيح هذه الأداة للمستخدمين تشغيل الأوامر والبرامج في أوقات محددة بدقة عالية، مما يساعد في تحسين الإنتاجية وتقليل الحاجة إلى التدخل البشري. من خلال فهم آلية عمل cron واستخدامه بشكل صحيح، يمكن إدارة الأنظمة بشكل أكثر كفاءة وتحقيق أفضل استفادة من الموارد المتاحة.

