كيف تقوم بتنفيذ سكريبت في أوقات منتظمة

يحتاج أحدنا إلى اعادة تنفيذ برنامج ما أو سكريبت شال script shell أو أوامر عبر الترمنال في أوقات محددة و بصفة منظمة, و للقيام بذلك سأعرفكم إلى و سيلة تساعد في تحقيق هذا الغرض.

الأداة التي سنعتمد عليها تسمى crontab و هي تعمل أساسا عبر الترمنال, حيث يمكن أن نحدد الخيارات الأساسية كالتالي:

crontab -e
لتعديل ملف crontab أو إنشاء ملف جديد في حال عدم وجوده.
 crontab -l
إظهار محتوى ملف crontab.
crontab -r
لحذف ملف crontab.

فهم كيفية عمله

 تتكون تركيبة الملف على الشكل التالي:

*     *     *   *    *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of        month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)
 هذا و يمكن استعمال علامة * للإشارة إلى أنه يمكن استعمال كل الخيارات الممكنة.
أو علامة / للإشارة إلى الوقت الذي يمكن أن يمتد إستعمال الملف فيه

يبدو نظريا ان الأمر صعب و لكن لنأخذ أمثلة عملية و سترون أن الأمر سهل.

المثال الأول: نريد أن نقوم بتسجيل الوقت كل5 دقائق في ملف أسميناه date.file

ندخل الأمر الخاص بالتعديل (sudo crontab -e) ثم ندخل السطر التالي مع ملاحظة أنه قد يطلب منك ادخال برنامج تعديل النصوص الذي ستسخدمه, بالنسبة لي اخترت nano لأنه الأسهل في الإستعمال.
كذلك إذا وجدت انه يحتوي على سطر آخر من قبل فلا تحذفه و اكتب تحته.

30-50/5 9 * 8 * /bin/date >> /home/phoenix/date.file

نبدأ في تحليل السطر في البداية توجد 30-50 أي الوقت الممتد من الدقيقة 30 إلى الدقيقة 50;
5/ يكتب الوقت كل 5 دقائق.
9 للإشارة إلى الساعة التاسعة صباحا;
* في أي يوم من أيام الشهر;
8 في شهر أوت أغسطس;
* في أي يوم من أيام الأسبوع;
<<  أضف سطر جديد في كل مرة
/bin/date مكان الملف المسؤول عن إضهار الوقت و نجده عبر الأمر which date
/home/phoenix/date.file مسار الملف الذي سيحفظ فيه النتيجة.

المثال الثاني:

00 00 * * * /home/z755692/scripts/makeDbBackup.sh >> /tmp/DBBACKUP/bkup.log

يقوم بحفظ ملف إحتياطي لقاعدة البيانات كل يوم عند منتصف الليل.

المثال الثالث:

10/5,18 16 * 8 * /usr/bin/mplayer /home/phoenix/Athan/Adhan_from_Turkey.mp3

يقوم بإعلامي بموعد صلاة العصر عبر رفع الآذان, مرتان المرة الأولى على الساعة  16:10 للتنبيه لاقتراب موعد الصلاة ثم المرة الثانية على الساعة 16:15 و ينتهي عند الساعة 16:18 (استعملنا الفاصلة) و ذلك على امتداد شهر أغسطس.
أرجو أن أكون قد أفدتكم, و إن إحتجتم لتوضيح نقطة معينة فما عليكم إلا أن تطلبو ذلك في التعليقات

0 comments: