با سلام و درود، خیلی سرسع میریم سر اصل مطلب 🙂 cron job وظیفه ای می باشد که در هر بازه ی زمانی مورد نظر اجرا می شود. وظیفه می تواند تنظیم شود تا هر دقیقه، ساعت، روز از ماه، ماه، روز از هفته یا هر ترکیبی از این موراد اجرا شود.
کرون جاب ها معمولا استفاده می شوند تا نگهداری از سیستم را خودکار کنند، برای مثال پشتیبان گیری از پایگاه داده ها، بروزرسانی سیستم با آخرین پچ های امنیتی، بررسی میزان مصرف دیسک، ارسال ایمیل و … .
اجرا cron jobهر ۵ دقیقه، یکی از پر استفاده ترین برنامه ریزی های cron می باشد.
سینتکس و اپراتورهای Crontab
Crontab یا همان (جدول کرون – cron table) فایل متنی میباشد که cron jobها را برنامه ریزی می کند. فایل های Crontab را می توان با استفاده از دستور crontab، ایجاد، مشاهده، تغییر و حذف کرد.
هر خطی در فایل crontab شامل ۶ فیلد می باشد که توسط space از هم جدا شده اند و در انتها با دستور command جهت اجرا کردنشان.
* * * * * command(s) ^ ^ ^ ^ ^ | | | | | allowed values | | | | | ------- | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
پنج فیلد ابتدایی (تاریخ و زمان) عملگرهای زیر را نیز می پذیرند:
- * ستاره : عملگر ستاره به معنی تمامی مقادیر مجاز می باشد. اگر شما عملگر ستاره در فیلد دقیقه داشته باشید، به این معنی است که وظیفه هر دقیقه اجرا می شود.
- – : عملگر خط فاصله به شما اجازه تعیین یک بازه از مقادیر را می دهد. اگر شما برای فیلد روز از هفته، ۱-۵ را تنظیم کنید. وظیفه هر روزی از هفته که از یکشنبه تا پنج شنبه باشد ، اجرا خواهد شد. (۰ شنبه، ۱ یک شنبه، ۲ دوشنبه و …)
- , : عملگر کاما (ویرگول) به شما اجزا می دهد تا لیستی از مقادیر برای تکرار بسازید. برای مثال اگر مقادیر ۱،۳،۵ را برای فیلد ساعت داشته باشید، وظیفه در ساعت ۱ صبح، ۳ صبح و ۵ صبح اجرا می شود. لیست می تواند مقدار تک یا بازه ای داشته باشد (1-5,7,8,10-15)
- / عملگر اسلش به شما این اجازه را می دهد که مقدار گام تعیین کنید که یم تواند در ترکیب بازه ها به کار رود. برای مثال، اگر شما در فیلد دقیقه داشته باشید 1-10/2 ، به این معنی است که عملیات هر دوقیقه در بازه ۱ تا ۱۰ اتفاق می افتد. مشابه با 1,3,5,7,9. به جای بازه ای از مقادیر، شما می توانید از عملگر ستاره نیز استفاده کنید. برای تعیین این که job هر ۲۰ دقیقه اجرا شود، می توانید از «*/20» استفاده کنید.
سینتکس فایل crontab در فضای سیستم تقریبا متفاوت از crontab کاربر می باشد. این فایل همچنین شامل فیلد اضافه ای است که مشخص می کند چه کاربری این دسترو را اجرا خواهد کرد.
* * * * * <username> command(s)
اگر قصد ویرایش crontab fileرا دارید یا اگر وجود ندارد می خواهید یکی از آن بسازید، از دستور crontab -e استفاده نمایید.
اجرای Cron Job هر پنج دقیقه
دو روش برای اجرای cron job در هر پنج دقیقه وجود دارد.
روش اول استفاده از عملگر ویرگول جهت ساخت لیستی از دقیقه ها:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * command
خط فوق به صورت سینتکسی درست می باشد و به درستی کار خواهد کرد. با این وجود تایپ کردن کل لیست، خسته کننده می باشد و مستعد ایجاد خطا است.
آپشن دوم برای تعیین Job جهت اجرا شدن در خد پنج دقیقه استفاده از عملگر اسلش (گام – step) می باشد:
*/5 * * * * command
زیبا بود 👏