يحتاج أحدنا إلى اعادة تنفيذ برنامج ما أو سكريبت شال script shell أو أوامر عبر الترمنال في أوقات محددة و بصفة منظمة, و للقيام بذلك سأعرفكم إلى و سيلة تساعد في تحقيق هذا الغرض.
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 (استعملنا الفاصلة) و ذلك على امتداد شهر أغسطس.
أرجو أن أكون قد أفدتكم, و إن إحتجتم لتوضيح نقطة معينة فما عليكم إلا أن تطلبو ذلك في التعليقات