Cron Daemon یک سرویس در سیستم عامل های بر پایه ی لینوکس است که فرآیندهای سیستم شما را در یک زمان برنامه ریزی شده اجرا می کند.(Cron Job) کرون جاب Crontab (جدول Cron) را برای دستورات و اسکریپت های از پیش تعریف شده می خواند.
با استفاده از یک فرمت مشخص، میتوانید یک کرون ایجاد کنید که با استفاده از این کرون یک فرایند مشخص در یک زمان تعیین شده در سرور شما اجرا گردد.
در این مقاله قصد داریم نحوه راه اندازی Cron Job در لینوکس را با مثال هایی به شما نمایش دهیم.
سینتکس ( فرمت ) ابتدایی Crontab
Cron فایل پیکربندی را برای لیستی از دستورات برای اجرا می خواند. برای اینکه بتوانیم یک کرون جاب تعریف کنیم، باید اِلمان های تشکیل دهنده این دستورات را درک کنیم. فرم استاندارد برای خط Crontab به شرح زیر است:
a b c d e /directory/command output
مطابق فرمت بالا، اجزای یک دستور Cron عبارتند از:
- پنج فیلد اول یعنی a b c d e که زمان یا تاریخ و تکرار کار را مشخص می کند.
- در قسمت دوم محل اجرای کرون جاب و دستور و یا اسکریپتی که قرار است اجرا شود مشخص میگردد.
- بخش سوم و یا همان خروجی که در فرمت بالا مشخص شده است اختیاری می باشد و معمولا برای این مورد به کار می رود که پس از اجرای کرون جاب و پایان آن به یک شیوه ی مشخص به کاربر اطلاع رسانی شود.
فرمت زمان بندی در دستورات کرون جاب:
پنج فیلد اول دستور، اعدادی را نشان میدهند که تعیین میکنند فرمان چه زمانی و چند بار اجرا شود. یک فاصله هر فیلد را از هم جدا می کند که نشان دهنده یک مقدار خاص است.
در جدول زیر مقادیر ممکن برای هر فیلد از 5 فیلد اول دستور کرون جاب را به همراه یک مثال مشخص کرده ایم:
فیلد ها | مقدار های مجاز قابل استفاده برای فیلد | دستور | توضیح |
[a] – دقیقه | 0 – 59 | * * * * 7 | هر زمان که دقیقه ی ساعت بر روی 7 باشد کرون جاب اجرا میگردد.
|
[b] – ساعت | 0 – 23 | * * * 7 0 | کرون جاب تعریف شده هر روز ساعت 7 صبح و 7 شب اجرا می شود.
|
[c] – روز | 0 – 31 | * * 7 0 0 | کرون جاب روز هفتم هر ماه اجرا می شود.
|
[d] – ماه | 0 = نامشخص و 12 = ماه دسامبر | * 7 0 0 0 | کرون جاب تنها در ماه جولای که ماه هفتم سال میلادی می باشد یک مرتبه اجرا میگردد.
|
[e] – روزهای هفته | 0 = شنبه و 7 = شنبه | 7 * * 0 0 | کرون جاب در روز شنبه هر هفته اجرا میگردد.
|
دستور کرون جاب:
قسمت بعدی دستور اجرایی را مشخص می کند. این بخش محل و نام فایل اسکریپت یا دستوراتی است که می خواهید Cron اجرا شود را تعیین میکند. مثلا:
/root/example.sh
در مثال ما، دستور به Root سرور نگاه می کند و اسکریپت Example.sh را اجرا می کند که یک فایل bash می باشد و میتوانید هر دستوری را به عنوان مثال دستور کپی کردن یک فایل از یک دایرکتوری را در این فایل bash وارد کنید.
خروجی (دلخواه):
بخش سوم یک دستور کرون جاب بخش خروجی می باشد. بهطور پیشفرض، Cron زمانی که فایل Crontab اجرا و تکمیل میشود، ایمیلی برای صاحب آن ارسال میکند. این یک راه راحت برای پیگیری کرون جاب است. اما خب لازم به ذکر می باشد در صورتی که کرون جاب به صورت ساعتی اجرا می شود ایمیل های زیادی برای شما ارسال میگردد و در مواردی باعث دردسر می شود.
از آنجایی که این یک ویژگی اختیاری است، می توانید با غیرفعال کردن ایمیل خروجی از این سناریو جلوگیری کنید. برای خاموش کردن خروجی ایمیل، رشته زیررا بعد از فیلدهای زمانبندی و دستور اضافه کنید تا ایمیلی برای شما ارسال نگردد.
/dev/null 2>&1
نحوه ی ست کردن کرون جاب در سرور:
برای پیکربندی یک کرون جاب ، Crontab را با یک ویرایشگر متن دلخواه باز کنید و دستوری را که میخواهید اجرا کنید، وارد و ذخیره کنید.
ویرایش فایل Crontab:
برای باز کردن فایل پیکربندی Crontab ، دستور زیر را در ترمینال سرور خود وارد کنید:
crontab –e
در این فایل در هر خط میتوانید یک کرون جاب تعریف نمایید و سپس فایل را ذخیره کنید. پس از ذخیره ی فایل نیازی به ریستارت کردن سرویس خاصی وجود ندارد.
مشاهده ی لیست کرون جاب های در حال اجرا در سرور :
علاوه بر اینکه میتوانید از طریق Crontab کلیه ی کرون جاب های موجود در سرور خود را مشاهده کنید از طریق دستور زیر نیز میتوانید این کار را در سرور خود انجام دهید:
crontab –l
با تشکر از همراهی شما