دستور Crontab در لینوکس و سیستم عامل های مشابه یونیکس جدول cron را برای ویرایش باز می کند. در این مقاله نحوه استفاده از دستور Crontab را به همراه ذکر مثال به شما عزیزان آموزش خواهیم داد، همراه داتیس نتورک باشید.
دستور Crontab در لینوکس چیست؟
این دستور در لینوکس و سیستم عامل های مشابه یونیکس جدول cron را برای ویرایش باز می کند.
جدول cron لیستی از وظایف برنامه ریزی شده برای اجرا در فواصل زمانی منظم بر روی سیستم است.
ما با Cron که با دستور Crontab در لینوکس شناخته میشود ، توانایی آن را خواهید داشت تا دستورات را تحت یک شل اسکریپت و یا به صورت نرمال در آن اضافه کرده و درخواست اجرا در زمان مورد نظر را بدهید.
ابزار Crontab امروزه به صورت پیش فرض بر روی اکثر توزیعهای لینوکس قرار داشته ولی ممکن است با نصب نسخههای مینیمال و … این ابزار به طور پیش فرض نصب نشده باشد.
crontab برای اجرای task های خاص در یک دوره زمانی منظم استفاده می شود.
crontab مشابه task schedule ویندوز می باشد.
crontab برای انجام task های روتینی مثل اسکن سیستم ، پشتیبان گیری روزانه استفاده می شود .
job ها توسط crontab در بک گراند سیستم در زمان و دوره ی مشخصی اجرا می شود.
در این آموزش شما crontab را با 10 مثال کاربردی و مفید یاد خواهید گرفت .
شما می توانید از crontab به منظور اجرای یکبار یک task در آینده نیز استفاده کنید ولی پیشنهاد می شود برای اینکار از دستور at در لینوکس استفاده کنید.
سینتکس دستور
Crontab شامل شش فیلد می باشد.
فیلدهای 1 الی 5 تاریخ و زمان اجرا را تعیین می کنند و فیلد ششم برای دستور یا اسکریپتی که باید اجرا شود به کار می رود .
سینتکس crontab به شکل زیر است :
[command] [Day_of_the_Week] [Month_of_the_Year] [Day_of_the_Month] [hour]
- – ستاره به معنی همه موارد است
- – شما میتوانید با استفاده از – بازه نیز تعریف کنید مثلا 10-1 یا 30-20 یا sun-fri یا feb-apr
- – شما می توانید چندین بازه نیز تعریف کنید مثلا jan-mar, jul-sep
آموزش کار با دستور Crontab
در این مطلب ما به توضیح برخی از دستورات Crontab پرداخته و به صورت مختصر با آن آشنا خواهیم شد و در مطالب بعدی به نحوه کار با Crontab در لینوکس خواهیم پرداخت.
crontab [-u user] file crontab [-u user] [-l | -r | -e] [-i] [-s]
مشاهده کرون های تنظیم شده در لینوکس
برای مشاهده تمام Job هایی که در Cron تنظیم شده است شما میتوانید در دستور Crontab از پارامتر l- استفاده نمایید.
crontab -l
افزودن job به Cron
برای افزودن یک یا چند Job جدید و یا حذف تکی آنها میتوانید پارامتر e- را پس از دستور وارد کرده تا در قالب یک ویرایشگر به انجام عملیات مورد نظر خود بپردازید.
crontab -e
حذف تمام Job های تعریف شده در Cron
برای حذف تمامی Job های تعریف شده به صورت کلی ز پارامتر r- استفاده میگردد. دقت داشته باشید با وارد کردن دستور زیر تمامی Job های تعریف شده به صورت یکجا حذف خواهند شد.
crontab -r
اگر در نظر دارید قبل از حذف از شما تأییدیه برای حذف دریافت گردد دستور را باید به شکل زیر وارد نمایید.
crontab -i -r
مشاهده job های تنظیم شده در Cron یک یوزر خاص
مشاهده Job های تنظیم شده برای یک یوزر خاص در Crontab از پارامتر u- استفاده میشود.
crontab -u Abtin -l
دستور بالا تمام Job های تنظیم شده در فایل Cron یوزر Abtin را نمایش خواهد داد ؛ شما میتوانید نام یوزر مورد نظر خود را جایگزین Abtin نمایید.
به همین ترتیب شما میتوانید برای اضافه کردن یک job برای یوزری دیگر نیز اقدام کنید و تنها نیاز است در دستور لینوکس Crontab به جای پارامتر l- از پارامتر e- استفاده نمایید.
crontab -u Sina -e
به صورت مثال در دستور بالا ، شما فایل Cron یوزر Sina را باز خواهید کرد و تغییر و اضافه کردن Job نیز میپردازید.
10 مثال کاربردی crontab
1- زمانبندی cron برای اجرای روزانه ساعت 2 صبح
این مورد برای پشتیبان گیری روزانه از دیتابیس بسیار مفید است.
0 2 * * * /bin/sh backup.sh
2- زمانبندی یک cron برای اجرای دو بار در هر روز
در مثال زیر دستور Crontab هر روز در ساعت 5 صبح و 5 عصر اجرا می شود . شما میتوانید با استفاده از کاما ساعات دیگری هم اضافه کنید.
0 5,17 * * * /scripts/script.sh
3- زمانبندی یک cron برای اجرا در هر دقیقه
کلا شما خیلی کم نیاز به اجرای یک دستور در هر دقیقه خواهید داشت ولی چنانچه نیاز دارید اسکریپت در هر دقیقه اجرا شود به صورت زیر عمل کنید
* * * * * /scripts/script.sh
4- زمانبندی cron برای اجرا هر 10 دقیقه
چنانچه میخواهید یک task را در فواصل زمانی 10 دقیقه ای اجرا کنید به شکل زیر عمل کنید این نوع از cron مناسب عملیات مانیتورینگ می باشد.
*/10 * * * * /scripts/monitor.sh
5-زمانبندی cron برای اجرا در هر یکشنبه ساعت 5 عصر
این نوع از cron برای task های هفتگی مناسب است مانند log rotation
0 17 * * sun /scripts/script.sh
6- زمانبندی cron برای اجرا در ماههای انتخابی
گاهی اوقات نیاز داریم تا اسکریپت ما در ماههای خاصی اجرا شود . در مثال زیر اسکریپت در ماههای ژانویه ، می و آگوست اجرا می شود.
* * * jan,may,aug * /script/script.sh
7- زمانبندی cron برای اجرا در روزهای انتخابی
چنانچه شما بخواهید اسکریپت شما فقط در روزهای خاصی اجرا شود به صورت زیر عمل کنید . اسکریپت زیر در روزهای یکشنبه و جمعه ساعت 5 عصر اجرا می شود.
0 17 * * sun,fri /script/script.sh
8- زمانبندی یک cron برای اجرا در اولین یکشنبه هر ماه
برای زمانبندی یک اسکریپت به منظور اجرا در اولین یکشنبه هر ماه فقط پارامترهای زمانی کافی نیست . میبایست در فیلد دستور Crontab تغییراتی اعمال کنید تا به هدف خود برسید.
0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh
9- زمانبندی یک cron برای اجرا دوبار در هر یکشنبه و دوشنبه
برای اجرای یک task دوبار در روزهای یکشنبه و دوشنبه به شیوه زیر عمل کنید
0 4,17 * * sun,mon /scripts/script.sh
10- زمانبندی یک cron برای اجرا هر 4 ساعت
چنانچه می خواهید اسکریپت شما در فواصل زمانی 4 ساعت اجرا شود به شیوه زیر عمل کنید
0 */4 * * * /scripts/script.sh
امیدواریم مقاله آموزش دستور Crontab در لینوکس مفید بوده باشد.
داتیس نتورک را در شبکه های اجتماعی دنبال کنید.