cron job یک کار یا Task زمان بندی شده است كه برای انجام کار های تکراری در سیستم عامل لینوکس میتوانند بسیار مفید واقع شوند در واقع میتوان گفت که هدف از ایجاد cron job انجام کارهای تکراری در لینوکس است. بطور مثال شما میتوانید یک cron job را برای حذف فایل های موقتی یا Temporary در هر هفته، برای حفظ فضای خالی دیسک تان تنظیم کنید. گاهی اوقات نیاز است کارخاصی در زمان خاصی و به صورت دوره ای انجام شود، برای مثال گرفتن بکاپ از پایگاه داده، ارسال ایمیل و خبرنامه و کارهایی نظیر این. برای انجام این کار در ویندوز از Schedule Task استفاده می شود. در سیستم عامل های متن باز نظیر لینوکس و یونیکس برای این منظور ابزاری بنام Cron وجود دارد که در این مقاله به آن میپردازیم.
کرون جاب یا Cron Jobs یک قابلیتی است که در سیستم های لینوکسی وجود دارد و وظیفه ی اجرای عملیاتی خاص در زمانبندی خاصی را به صورت کاملاً اتوماتیک بر عهده دارد. Cron Jobs قابلیتی از لینوکس است که یک command یا script را به صورت اتوماتیک برنامه ریزی می کند که در تاریخ و یا ساعت مشخصی اجرا شود. در واقع Cron یک دستور و Cron Jobs برنامه های مشخص شده ای برای اجرا هستند که از طریق Cron ایجاد می شوند. برای مثال شما هر هفته می خواهید فایل هایی موقت را از روی هارد خود پاکسازی کنید، در این صورت کرون جاب می تواند به خوبی به شما کمک کند. عملیات اتوماتیک Cron Jobs می تواند اجرای یک دستور یا Command و یا برنامه ی خاصی و یا اجرای یک اسکریپت CGI باشد. بعنوان مثال اجرای زمانبندی شده ی یک فایل PHP به منظور ارسال ایمیل به کاربران که به صورت اتوماتیک در زمان مشخص شده هر روز ساعت 9 صبح ایمیل مذکور را ارسال خواهد نمود. این کار در سیستم عامل لینوکس از طریق Cron job و در سیستم عامل ویندوز از طریق Schedule task انجام می شود.
ممکن است بعضی از برنامه ها نظیر Drupal نصب شود تا بتوان یک cron job برای انجام برخی وظایف تنظیم شود. اسکریپت هایی که به عنوان cron job اجرا میشوند معمولاً برای تغییر فایل ها یا دیتابیس ها استفاده میشوند و از cron job ها میتوان برای ارسال ایمیل به یک کاربر نیز استفاده کرد. کران توسط یک فایل پیکربندی تحت عنوان Cron Table که در مسیر etc/crontab/ در سرور قرار دارد اجرا می شود. هر یک از خطوط فایل crontab نشانگر یک کامندی است که در زمان خاصی اجرا خواهد شد. معمولاً یک فایل CronTab در سطح سیستم وجود دارد که در آدرس /etc/ قرار دارد که برای کارهای مدیریتی و نگهداری سیستم مورد استفاده قرار می گیرد و البته فقط مدیر سیستم یا کاربر با مجوز root می تواند آن را ویرایش کند. به علاوه هر کدام از کاربران سیستم می توانند فایل CronTab مختص به خودشان داشته باشند. هر دستور در فایل CronTab شامل ۶ بخش است که ۵ بخش ابتدایی برای تعریف تاریخ و زمان انجام دستور مورد نظر و بخش آخر برای تعریف دستوری که باید اجرا شود در نظر گرفته شده است.
استفاده ی عمده و مهم از کرون جاب در سایت ها برای سرویس های کاربران می باشد که با هر اجرای کرون ایمیل هایی به منظور اطلاع رسانی های لازم به کاربران یا مشتریان ارسال خواهد شد. بعنوان مثال ایمیل به منظور اطلاع از صدور صورتحساب، اخطاریه انسداد سرویس، اخطاریه تمدید سرویس و غیره که همگی به سادگی و با یک دستور php قابل تنظیم و اجرا هستند و اگر از کرون جاب استفاده نشود تمامی این موارد و بسیاری دیگر از کارها را می بایست به صورت دستی و با صرف زمان زیاد و حتی در صورت عدم دقت کافی نیز بروز مشکلات نیز انجام داد. کرون جاب دنیای بسیار گسترده و هوشمندی دارد. در لینوکس هنگامی که یک زمانی را برای کرون جاب تعریف می کنید، آن زمان به UTC بازگردانی می شود و در صورت تغییر ساعت سیستم، مشکلی در اجرا پیش نخواهد آمد. بدین معنا که زمان سرور شما حائز اهمیت نخواهد بود و زمان مرجع برای اجرای کرون جاب، تایم UTC می باشد.
غالباً Cron Jobs از سه المان تشکیل می شود:
1. -Script ای که قرار است اجرا شود.
2. -Command یا دستوری که Script را به صورت مکرر اجرا می کند که معمولاً در کنترل پنل تنظیم می گردد.
3. -Action یا Output ای که در اثر Script ذکر شده خارج می شود.
در قسمت Cron Job هاست گزینه هایی وجود دارند که هر کدام تنظیمی از زمانبندی و دستوری را اجرا مینمایند. برای مثال می توان اجرای کرون را برای Once Per Minute: هر یک دقیقه یک بار، Once Per Five Minute: هر 5 دقیقه یک بار، Twice Per Hour: دو بار در ساعت، Once Per Hour: هرساعت یک بار، Twice Per Daye: دو بار در روز، Once Per Day: هر روز یک بار، Once Per Week: هر هفته یک بار ، On the 1st and 15st of the Month: روز 1 و 15 هر ماه، Once Per Month: هر ماه 1 بار و Once Per Year: هر سال 1 بار تنظیم نمود. و در قسمت Command: در این قسمت دستور مورد نظر خود را جهت اجرای سیستم تایپ کرد.