لینوکس

آموزش دستور Crontab در لینوکس به همراه مثال

آموزش دستور Crontab در لینوکس به همراه مثال

دستور Crontab در لینوکس و سیستم عامل های مشابه یونیکس جدول cron را برای ویرایش باز می کند. در این مقاله نحوه استفاده از دستور Crontab را به همراه ذکر مثال به شما عزیزان آموزش خواهیم داد، همراه داتیس نتورک باشید.

آموزش دستور 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]

آموزش دستور Crontab در لینوکس به همراه مثال

  • – ستاره به معنی همه موارد است
  • – شما میتوانید با استفاده از – بازه نیز تعریف کنید مثلا 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 در لینوکس مفید بوده باشد.

داتیس نتورک را در شبکه های اجتماعی دنبال کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *