Cron Job یا Cron Task همانطور که از اسم آنها نیز مشخص میباشد وظیفه اجرای یک دستور، یک اسکریپت و یا یک برنامه را در سرور های لینوکسی و ویندوز دارند.
Cron Job بیشتر روی سرور ها و هاست های لینوکسی مطرح میباشد ولی در سرور های ویندوز نیز با نام های Cron Task یا Scheduled Tasks نیز همین قابلیت وجود دارد که شما میتوانید با استفاده از آن بر اساس الگوی زمان بندی تعریف کنید که مثلا در ساعت 12 هر شب یک URL یا یک دستور یا یک فایل را اجرا کند.
استفاده از Cron Job و تعریف آن در Cron Tab لینوکس در صورتی که شما از کنترل پنل استفاده نمیکنید پیچیدگی خاص خود را دارد که در ادامه به آنها خواهیم پرداخت، ولی در صورتی که از هاست استفاده میکنید میتوانید با استفاده گزینه ای که در کنترل پنل هاست خود با نام Cron Job وجود دارد اقدام به تعریف Cron کنید که در ادامه به معرفی آن نیز خواهیم پرداخت.
Cron Job چه کاربردی دارد؟
فرض کنید شما میخواهید هر روز از دیتابیس سایت خود بک آپ تهیه کنید و بر فرض شرکت ارائه دهنده هاستینگ شما بک آپ روزانه ندارد، بهترین راه حل در این مواقع استفاده نوشتن یک اسکریپت برای تهیه بک آپ از دیتابیس میباشد، ولی بعد از نوشتن اسکریپت نیز بصورت اتوماتیک قابلیت اجرا ندارد. بنابراین شما میتوانید یک Cron Job تعریف کنید که دقیقا هر شب ساعت 12 از کل دیتابیس های شما بک آپ تهیه و در محل هاست در سرور ذخیره کند.
یا مثلا شما نیاز دارید که در هفته 3 روز به تمام کاربران سایت خود بصورت اتوماتیک یک ایمیل ارسال کنید. در صورتی که از ابزار های ایمیل مارکتینگ استفاده نمیکنید، میتوانید یک اسکریپت برای آن تهیه کنید و در Cron Job های خود تعریف کنید که هر 3 روز یکبار اسکریپت ارسال ایمیل شما فراخوانی گردد.
Cron Job در لینوکس
اجرای Cron Job روی لینوکس یکسری قوانین و دستوراتی دارد که اشنایی با آنها میتواند به شما کمک کند تا راحت تر Cron Job خود را تعریف کنید. در لینوکس هر Cron Job از 5 بخش تشکیل شده است که به صورت * * * * * مشخص میگردد. هر کدام از این ستاره ها نماینگر زمان اجرا میباشد. به عنوان مثال ستاره اول از سمت چپ نشانگر دقیقه میباشد یعنی در صورتی که Cron شما بصورت 2 * * * * تعریف شده باشد هر 2 دقیقه یکبار Cron Job دستور شما را اجرا میکند. ستاره دوم به معنای ساعت میباشد که میتواند در بازه زمانی 0 الی 23 قابل تنظیم باشد به عنوان مثال 2 12 * * * بدین معنی میباشد که هر روز ساعت 12 و 2 دقیقه کران مد نظر شما اجرا میگردد. ستاره سوم مشخص کننده روز های ماه میباشد که میتواند مقادیر آن از 1-31 باشد، ستاره چهارم مشخص کننده ماه از سال میباشد که مقادیر آن از 1 الی 12 قابل تنظیم میباشد. ستاره آخر نیز روز از هفته میباشد که از 0 الی 6 قابل تنظیم میباشد. در ستاره آخر بایستی توجه فرمایید که 0 به منزله یکشنبه میباشد.
در خود شل لینوکس نیز میتوانید با دستورات زیر Cron Job مد نظر را تعریف کنید، برای مشاهده Cron Job های موجود در لینوکس و یا اضافه کردن آنها بصورت دستوری از کامند زیر استفاده کنید.
crontab –e
برای مثال
0 0 * * * /usr/local/cpanel/scripts/cpbackup
این دستور هر روز در ساعت 12 شب آدرس ذکر شده را برای بک آپ گیری سی پنل اجرا میکند، شما میتوانید آدرس اسکریپت مد نظر خود را نیز در این دستور وارد و در crontab ذخیره کنید.
تنظیمات Scheduled Tasks در ویندوز
در ویندوز تعریف تسک های زمان بندی شده پیچیدگی لینوکس را ندارد، در داخل خود ویندوز کلمه Scheduler را میتوانید سرچ کنید تا پنجره Task Scheduler را بتوانید مشاهده و تنظیمات مدنظر را اعمال کنید. در هنگام ایجاد Task در ویندوز میتوانید با استفاده از گزینه Trigger زمان بندی مد نظر را تنظیم کنید. همچنین در تب Action نیز میتوانید اسکریپت یا مواردی که قصد اجرای آن را داریدمیتوانید انتخاب کنید.
البته تنظیمات Cron یا Task روی ویندوز و لینوکس در صورتی که شما از هاست استفاده میکنید پیچیدگی خاصی ندارد و بسیار ساده میباشد. به عنوان مثال درصورتی که کنترل پنل هاست شما Cpanel یا مثلا دایرکت ادمین باشد با مراجعه به قسمت Cron Jobs در صفحه اصلی سی پنل/دایرکت ادمین وارد تنظیمات Cron میشوید و میتوانید بعد از تنظیمات زمان بندی طبق توضیحات بالا، در قسمت Command دستور، یا ادرس اسکریپت مد نظر را وارد کنید و ذخیره کنید.
در سرور های ویندوز و کنترل پنل Plesk نیز تنظیمات Cron یا Scheduled Tasks بسیار ساده میباشد و در صفحه اول کنترل پنل پلسک میتوانید از این گزینه استفاده کنید و زمان بندی، آدرس اسکریپت خود را وارد کنید تا Task شما ایجاد و در زمان بندی مشخص شده اجرا گردد.