کرون جاب چیست؟ آیا تا به حال این اصطلاح را شنیدهاید. کرون از یک واژه یونانی (Cronus) الهام گرفته شده است که به معنای زمان است. کرون در واقع یک برنامه یا بهتر بگوییم یک قابلیتی است که در سیستم عاملهای لینوکسی وظیفه زمانبندی برخی کارها را دارد که لازم است در تایمهای مشخصی تکرار شود. مثلا به هنگام خرید یک سرویس به صورت اتوماتیک برای کاربر ایمیل ارسال میشود و اطلاعات سرویس برای او ایمیل میشود یا در هنگام تمام شدن زمان سرویس برای تمدید سرویس به صورت خودکار برای کاربر ایمیل ارسال میشود. خلاصه هر کاری که لازم است در دقیقه، ساعت، روز، هفته، ماه و سال تکرار شود به عهده کرون جاب است و این برنامه به صورت اتوماتیک این کارها را انجام میدهد.
کرون جاب چیست و چگونه کار میکند؟
کرون یک اصطلاح لینوکسی است که به معنای زمان یا دوره میباشد. جاب کارهایی است که در زمان مشخص شده در یک کرون به صورت اتوماتیک انجام میشود. به همین دلیل به آن کرون جاب یا cron job میگویند. هر کرون قابل تعریف است و توسط مدیر سرور با استفاده از دستورات لینوکسی تعریف میشود. شما برای ایجاد هر کرون باید با برنامه نویسی و اسکریپتها آشنا باشید.
یک کرون جاب از سه بخش تشکیل میشود:
- متن دستورات (Script)
- برنامه (Schedule)
- گزارش (Action)
در کرون جاب امکان شخصی سازی دستورات بالاست و میتوان با توجه به سلیقه و نیاز کاربر و سایت، هر کرون را تعریف کرد. این قابلیت در طراحی سایت اختصاصی بسیار اثر گذار است. برای وردپرس نیز ما پلاگینهایی داریم که کار کرون را انجام میدهند مانند wp-cron . ولی هر مدیری میتواند با داشتن دانش لازم، خود برای سایت خود یا کاربران کرون مورد نیاز را تعریف کند. برخی کرونها در تمام سایتها الزامی هستند و باید ایجاد شوند مثلا کرونی که در هر هفته از سایت بکاپ بگیرد که بسیار الزامی و با اهمیت است. برای ایجاد کرون در سی پنل و دایرکت ادمین باید این کار انجام شود.
مثلا در سی پنل باید برای ایجاد کرون از منوی Advanced روی CronJob کلیک کنید و در صفحه ایجاد شده زمانبندی و آدرس فایلی که قصد اجرا دارید را وارد کنید و با زدن دکمه ایجاد کرون، کرون جاب خود را ایجاد کنید. در محیط دایرکت ادمین نیز در بخش Advanced options روی گزینه CronJob کلیک میکنید تا صفحه مربوط به ایجاد کرون باز شود و آن را طبق نیاز خود زمانبندی کنید. برای زمانبندی شما باید یک سری نکات را رعایت کنید این قوانین چه در سیپنل و چه در دایرکت ادمین یکسان است. و شامل موارد زیر است:
-
- برای مشخص کردن زمان، فقط از اعداد و کاراکتر * استفاده کنید.
- متغیر پیش فرض برای هر کرون، مقدار * است.
- عدم تغییر تمامی متغیرهای پیش فرض، سبب ایجاد کرون لوپ (Cron loop) خواهد شد، که در صورت وقوع این اتفاق، اسکریپت شما به صورت پیاپی اجرا خواهد شد و این مسئله میتواند موجب افزایش فشار سرور و داون شدن سایت شما شود. به همین دلیل، پنل به شما اجازه نمیدهد که برای کلیه مولفهها از عبارت ستاره استفاده کنید.
فرض کنید یک کرون جاب ایجاد کردهاید که در ساعت 5:35 اول هر ماه یک کار مشخصی را روی سایت انجام دهد. حالا زمانبندی را باید به شکل زیر انجام دهید :
- دقیقه : 35
- ساعت : 05
- روز از ماه : 01
- ماه :*
- روز از هفته :*
کاراکتر ستاره، به معنای یک کرون کامل از هر متغیر میباشد. پس قرار دادن مقدار ستاره برای مولفه ماه، به معنای یک بار اجرا در هر ماه میباشد. اگر بخواهیم اعداد را از هم جدا کنیم از کاراکتر “,” استفاده میکنیم. مثلا برای ساعت 05,10 را با کارکتر , جدا میکنیم که نشان دهنده دو ساعت مختلف است. همچنین اگر نیاز دارید بازه زمانی تعیین کنید از کاراکتر “-” بین اعدا استفاده میکنیم. مثلا برای دقیقه: 40-35
مولفه | دوره کرون | مقادیر مجاز |
دقیقه | 59 دقیقه | 59-0 |
ساعت | 23 ساعت | 23-0 |
روز از ماه | حداکثر 31 روز | 31-1 |
ماه | 12 ماه | 12-1 |
روز از هفته | 7 روز | 7-0 |
برخی زمانبندی های پیشفرض که در منوی Common Settings در دسترس هستند:
1. زمانبندی * * * * * : هر دقیقه کرون جاب ایجاد شده یکبار اجرا می شود.
2. زمانبندی * * * * */5 : هر 5 دقیقه یکبار کرون جاب ایجاد شده اجرا می شود.
3. زمانبندی * * * * 0 : هر ساعت یکبار کرون جاب ایجاد شده اجرا می شود.
4. زمانبندی * * * 12,0 0 : در روز 2 بار در ساعت های 12 و 24 کرون جاب ایجاد شده اجرا می شود.
5. زمانبندی 0 * * 0 0 : هر هفته یکبار کرون جاب ایجاد شده اجرا می شود.
6. زمانبندی * * 1 0 0 : هر ماه یکبار کرون جاب ایجاد شده اجرا می شود.
7. زمانبندی * 1 1 0 0 : هر سال یکبار کرون جاب ایجاد شده اجرا می شود.
بعد از تعیین زمان بندی کرون باید دستور را تعیین کنیم برای این کار باید اسکریپت خود را در پوشه مدنظر خود قرار دهید و آدرس فایل را مطابق الگوی زیر وارد نمایید:
/usr/local/bin/php /home/username/domains/domain.com/public_html/cron.php
بخش قرمز رنگ برای تمامی سایتها ثابت است و مسیر اجرای php را نشان میدهد که برای اطمینان از آدرس بهتر است از شرکت هاستینگ خود مشورت بگیرید. اما بخش آبی رنگ، برای هر سایت متفاوت خواهد بود.
پارامترهای آدرس دهی اسکریپت (قسمت آبی رنگ) به شکل زیر هستند:
home : این پارامتر از صفحه ایجاد کرون جاب، قابل مشاهده است.
username : این پارامتر از صفحه ایجاد کرون جاب، قابل مشاهده است.
domains : این مقدار ثابت است و نیاز به تغییر ندارد.
domains.com : آدرس دامنه سایت خود را وارد کنید. توجه داشته باشید که هر پسوند دامنه قابل قبول است و برای تنظیم کرون جاب، نیاز نیست که حتما از دامنه com استفاده نمایید.
public_html : این مقدار ثابت است و نیاز به تغییر ندارد. البته اگر فایل اسکریپت خود را در دایرکتوری دیگری در داخل public_html قرار دادهاید، باید آدرس آن را در ادامه وارد کنید.
cron.php : به جای مقدار cron باید نام cron ایجاد شده را قرار دهید و پسوند .php هم حتما باید داشته باشد.
بعد از طی کردن این مراحل با زدن دکمه افزودن، کرون شما ایجاد خواهد شد.
سخن پایانی
کرون جاب قابلیتی است که در سیستم عاملهای لینوکسی وظیفه زمانبندی برخی کارها را دارد که لازم است در تایمهای مشخصی تکرار شود. در این مقاله سعی کردیم در حد توان کرون جاب را توضیح دهیم و در قالب مثال درک آن را آسانتر سازیم.