آیا میخواهید بهطور خودکار پست جدیدی را هر روز ساعت ۷ صبح در سایتتان منتشر کنید یا هر شب راس ساعت ۱۲ نسخه پشتیبانی از سایتتان تهیه شود؟ برای انجام این کارها می توانید از کرون جاب کمک بگیرید.
در این مقاله کرون جاب و نحوه کار با آن را کاملا بررسی می کنیم. بعد از مطالعه این مقاله با عملکرد کرون جاب آشنا خواهید شد و میتوانید در کارهایتان از آن استفاده کنید. خودتان را آماده کنید تا از انجام کارهای تکراری خستهکننده خلاص شوید.
پیشنهاد ویژه: خرید سایت وردپرسی ارزان از آرتا رسانه با بهترین کیفیت
کرون جاب چیست؟ دستیار کمکی مخصوص کارهای تکراری
کرون جاب (Cron Job) یک ابزار خط فرمان در سیستمعاملهای یونیکس است که برای زمانبندی کردن کارها به کار میرود در واقع با استفاده از آن میتوانید بهطور خودکار کارها یا همان کرون جابها را به صورت زمانبندی شده اجرا کنید.
کرون جاب مثل یک ربات همهکاره است که می تواند شما را از دست کارهای تکراری نجات دهد یعنی مثل یک دستیار باهوش در کنار شما کارهای تکراری سرور، کامپیوتر و سایت مانند بکاپگیری، بررسی فضای خالی دیسک، کارهای نگهداری سرور و حتی چک کردن لینکهای خراب را انجام می دهد.
یک کرون جاب از سه بخش تشکیل میشود:
- متن دستورات (Script)
- برنامه (Schedule)
- گزارش (Action)
کاربرد کرون جاب چیست؟
کرون جاب (Cron Job) برای اجرای خودکار و زمانبندی شده کارها در سیستم شما استفاده میشود. این ابزار میتواند در انجام کارهای مختلفی مورد استفاده قرار بگیرد مثلاً میتوانید اسکریپتهای خاصی را در زمانهای مشخصی برای اجرا برنامهریزی کنید. همچنین میتوانید بهروزرسانیها، گزارشها یا هر نوع اطلاعات دیگری را بهصورت خودکار از طریق ایمیل ارسال کنید. علاوه بر این میتوانید کارها و برنامههای خود را بهروزرسانی کرده و نسخههای جدید را در زمان مشخصی نصب کنید. همچنین میتوانید نسخه پشتیبانی از دادهها یا سیستمهای خود را بهصورت خودکار داشته باشید. در نهایت میتوانید مطالب جدید را به طور خودکار در سایت خود منتشر کنید یا عملیات مدیریتی دیگری مانند انتشار نسخههای جدید قالب را انجام دهید.
نکته مهمی که باید به آن توجه کنید، تأثیر فعالسازی کرون جاب بر سرعت سایت است. اگر با فعالسازی کرون جاب تغییر غیرطبیعی در سرعت سایت وردپرسی خود مشاهده کردید میتوانید بهجای غیرفعال کردن کرون جاب، اقداماتی برای بهبود سرعت سایت انجام دهید.
معایب Cron Job چیست؟
کرون جاب با وجود داشتن مزایا و سادهسازی کارها چالشها و معایبی نیز دارد که باید آن ها را در نظر بگیرید.
- اولاً اگر یک کرون، کاری را به تعویق بیندازد شما باید آن را بهصورت دستی مجدداً راهاندازی کنید.
- همچنین کرون جاب قادر به تقسیم کارها بین چند کامپیوتر در یک شبکه نیست؛ بنابراین اگر کامپیوتر خاموش شود، کرون جاب نمیتواند کارهای زمانبندی شده را انجام دهد.
- همینطور در صورتی که یک کار اجرا نشود کرون جاب قادر به تکرار آن نیست؛ بنابراین برای کارهایی که باید حتماً انجام شوند ممکن است قابلیت اطمینان کرون جاب کاهش پیدا کند.
- از طرف دیگر کرون جاب از تنظیمات برخی برنامهها که در فایلهای دیگر ذخیره شدهاند استفاده نمیکند. در نهایت باید توجه داشته باشید که حداقل فاصله زمانی بین دو کرون جاب یک دقیقه است فلذا نمیتوانید تعیین کنید که هر ۳۰ ثانیه یک کار اجرا شود. در نتیجه در استفاده از کرون جاب علیرغم مزایا باید به چالشها و محدودیتهای مذکور هم توجه کنید.
نحوه کار Cron Jobs چیست؟
کرون جاب (Cron Job) نوعی برنامه است که همیشه در حالت فعال در پسزمینه سیستمعاملهای شبیه یونیکس مانند لینوکس اجرا میشود و هیچ ارتباط مستقیمی با کاربر ندارد. وظیفه اصلی کرون جاب اجرای یک سری اقدامات در زمانهای مشخص براساس تنظیماتی که توسط کاربر تعیین میشود است. به عنوان مثال میتواند هر روز راس ساعت ۸ صبح یک اسکریپت خاص را اجرا کند.
کرون جاب بهطور کلی از دو بخش اصلی تشکیل شده است.
- بخش اول کرون دیمند (Cron Daemon) است یعنی یک برنامه همیشه در پسزمینه سیستمعامل لینوکس یا سیستمعاملهای شبیه لینوکس اجرا میشود. وظیفه اصلی این بخش زمانبندی و اجرای کرون جابها است.
- بخش دوم کرون تب (Crontab) است که به کاربران اجازه میدهد فهرست کارها را با زمانبندی کرون (Cron) ایجاد، ویرایش و مدیریت کنند. ذخیره سازی تنظیمات کرون جاب در فایل متنی کرون تب (Crontab) است. این فایل معمولاً تنها برای مدیران سیستم قابل دسترسی است و در آن تنظیمات زمانبندی برای اجرای کرون جابها تعیین میشود.
به این ترتیب کرون جاب به عنوان یک برنامه فعال در پسزمینه سیستمعامل با استفاده از کرون دیمند و تنظیمات کرون تب اقدامات زمانبندی شده را به صورت خودکار و مداوم اجرا میکند.
پیشنهاد مطالعه: دلیل تفاوت قیمت طراحی سایت در شرکت های مختلف
دستورالعملهای کرون تب (Crontab Syntax)
قبل از راهاندازی و استفاده از کرون جاب بهتر است نوع و فرمت دستورات کرون جاب را به درستی بفهمید تا اسکریپت شما به درستی عمل کند. میتوان کرون جاب را مانند یک کاغذ تصور کرد که در آن وظایف هر بخش بهطور دقیق نوشته شده است. کرون جاب یک لیست ۵ قسمتی و مشخص از وظایف هر بخش دارد:
- دقیقه (Minute): این بخش نشان میدهد که در کدام دقیقه از ساعت (از ۰ تا ۵۹) قصد اجرای کار را دارید.
- ساعت (Hour): این بخش نشان میدهد که در کدام ساعت از روز (از ساعت ۰:۰ تا ساعت ۲۳) میخواهید برنامه اجرا شود.
- روز (Day of the month): این بخش نشان میدهد که در کدام روز از ماه (از روز ۱ تا ۳۱) قصد اجرای کرون جاب را دارید.
- ماه (Month): این بخش نشان میدهد که در کدام ماه از سال (از ۱ تا ۱۲) میخواهید کرون جاب اجرا شود.
- هفته (Day of the week): این بخش نشان میدهد که در کدام روز از هفته (از ۰ تا ۶، که عدد ۷ معمولاً برای روز یکشنبه استفاده میشود) میخواهید کرون جاب اجرا شود.
در نحوه کار با کرون جاب توجه داشته باشید که باید آن را براساس زمانبندی منطقه زمانی مورد نظرتان بهدرستی تنظیم کنید. این امر به این دلیل مهم است که فاصله زمانی بین مناطق زمانی مختلف ممکن است متفاوت باشد و شما باید زمان را با توجه به منطقهی زمانی مورد نظرتان تعیین کنید.
سایر دستورات کرون تب در کرون جاب
در استفاده از کرون جاب از علامتهای زیر برای تعیین زمان اجرا استفاده میشود:
علامت | دستور |
ستاره (*) | این علامت تمام مقادیر ممکن را برای زمان مربوطه نشان میدهد. به عنوان مثال استفاده از علامت ستاره در قسمت دقیقه به این معنی است که اسکریپت هر دقیقه اجرا شود. |
کاما (,) | با استفاده از کاما میتوانید چند مقدار مختلف را به صورت همزمان تعیین کنید. مثلا “1,5” در قسمت روز هفته یعنی اینکه اسکریپت در روزهای دوشنبه و جمعه اجرا خواهد شد. |
خط تیره (-) | این علامت به شما امکان میدهد یک محدوده زمانی را مشخص کنید. به عنوان مثال استفاده از “6-9” در قسمت ماه به این معنی است که اسکریپت در بازه زمانی از خرداد تا شهریور اجرا شود. |
اسلش (/) | از اسلش برای تکرار با یک فاصله مشخص استفاده میشود. به عنوان مثال استفاده از “*/12” در قسمت ساعت به این معنی است که اسکریپت هر ۱۲ ساعت یکبار اجرا شود. |
آخرین (L) | این علامت نشان میدهد آخرین روز مربوطه را انتخاب کنید و میتوانید آن را در قسمتهای روز ماه و روز هفته استفاده کنید. به عنوان مثال استفاده از “3L” در قسمت روز هفته به این معنی است که اسکریپت در آخرین چهارشنبه هر ماه اجرا شود. |
هشتگ (#) | با این علامت می توانید از یک تعداد خاصی از روزهای ماه استفاده کنید. به عنوان مثال، “1#2” به این معنی است که اسکریپت در دومین دوشنبه هر ماه اجرا شود. |
علامت سوال (?) | این علامت برای عدم تعیین روز خاصی در ماه و هفته استفاده میشود. در این حالت زمان اجرای کرون جاب بر اساس زمان راهاندازی سرویس کرون جاب در سیستم تنظیم میشود و وابسته به روز و زمان خاصی نیست. |
در صورتی که نوشتن دستی تنظیمات کرون جاب برای شما دشوار است میتوانید از ابزارهای رایگان مانند Crontab Generator یا Crontab.guruاستفاده کنید. این ابزارها به شما کمک میکنند به راحتی زمان و تاریخ دقیق برای اجرای اسکریپت را مشخص کنید.
پیشنهاد مطالعه: تفاوت سئوی سایت کدنویسی با سایت وردپرسی
رشتههای ویژه در کرون جاب چیست؟
رشتههای ویژه در کرون جاب رشتههای مخصوصی هستند که برای تعیین زمان اجرای خاصی در کرون جاب استفاده میشوند. در ادامه درباره هر یک از رشتههای ویژه توضیح می دهیم:
رشته | دستور |
`@hourly` | این رشتهها به معنای اجرای یک بار در هر روز و در نیمه شب هستند. اسکریپت در هر روز وقتی نیمه شب شود اجرا میشود. |
`@daily` یا `@midnight` | این رشتهها به معنای اجرای یک بار در هر روز و در نیمه شب هستند. اسکریپت در هر روز وقتی نیمه شب شود اجرا میشود. |
`@weekly` | این رشته به معنای اجرای یک بار در هر هفته است. اسکریپت در نیمه شب روز یکشنبه هر هفته اجرا میشود. |
`@monthly` | این رشته به معنای اجرای یک بار در هر ماه است. اسکریپت در اولین روز ماه وقتی نیمه شب شود اجرا میشود. |
`@yearly` | این رشته به معنای اجرای یک بار در هر سال است. اسکریپت در نیمه شب اولین روز سال (1 ژانویه) اجرا میشود. |
`@reboot` | این رشته به معنای اجرای یک بار هنگام راهاندازی مجدد سیستم است. به عبارت دیگر اسکریپت هنگام راهاندازی مجدد سیستم اجرا میشود. |
استفاده از این رشتههای ویژه در کرون جاب میتواند برای تنظیم زمانبندی اجرای سادهتر و راحتتر اسکریپتها مفید باشد.
مجوزهای کرون جاب چیست؟
برای اجرای صحیح کرون جابها باید مجوزهای مربوط به فایلهای سیستمی کرون تنظیم شوند. شما میتوانید از دو فایل به نام cron.allow و cron.deny برای این کار استفاده کنید:
در صورتی که فایل /etc/cron.allow موجود باشد باید لیستی از نامهای کاربری مجاز برای اجرای کرون جابها را در آن بگذارید. در واقع فقط کاربرانی که نام کاربری آنها در این فایل قرار دارد مجاز به استفاده از کرون جاب هستند.
اگر فایل /etc/cron.deny وجود داشته باشد و نام کاربری شما در آن قرار گیرد شما نمیتوانید از کرون جاب استفاده کنید. به عبارت دیگر فایل cron.deny برای محدود کردن دسترسی کاربران به کرون جاب استفاده میشود و اگر نام کاربری شما در این فایل وجود داشته باشد شما قادر به استفاده از کرون جاب نخواهید بود.
توصیه می کنیم برای جلوگیری از هرگونه مشکل امنیتی فقط از فایل cron.allow استفاده کنید و فایل cron.deny را حذف یا خالی کنید. در این صورت تنها کاربرانی که نام کاربری آنها در فایل cron.allow وجود داشته باشد مجاز به استفاده از کرون جاب خواهند بود.
چند نمونه از عملیاتهای کرون جاب
در ادامه آموزش کرون جاب یک لیست از دستورات رایج و الگوهای زمانبندی کرون جاب را آماده کردهایم. لطفاً توجه داشته باشید که مسیر اسکریپتها (مانند /root/backup.sh) فقط به عنوان نمونه است و شما میتوانید زمانبندی و مسیر را بر اساس نیازهای خود تغییر دهید.
- 0 0 * * 0 /root/backup.sh یک بکاپ کامل هر یکشنبه در ساعت ۱۲ شب انجام میشود.
- 0 * * * 1 /root/clearcache.sh پاک کردن کش سیستم در هر ساعت از روز دوشنبه.
- 0 6,18 * * * /root/backup.sh دو بار در روز در ساعت ۶ صبح و ۶ عصر بکاپ گرفته میشود.
- */10 * * * * /scripts/monitor.sh هر ۱۰ دقیقه یک بار سیستم را نظارت میکند.
- */15 * * * * /root/backup.sh هر ۱۵ دقیقه یک بار بکاپ گرفته میشود.
- *** * 20 7 * /root/backup.sh** هر دقیقه در روز ۲۰ ماه تیر بکاپ گرفته میشود.
- 0 0 * * 2 * /root/backup.sh هر سهشنبه در ساعت ۱۲ شب بکاپ گرفته میشود.
- *** * * 1,2,5 * /scripts/monitor.sh** هر دقیقه در ماههای دی، بهمن و اردیبهشت سیستم را نظارت میکند.
- 10-59/10 5 * * * /root/clearcache.sh از ساعت ۵:۱۰ صبح به بعد هر ۱۰ دقیقه یک بار کش سیستم پاک میشود.
- *0 8 1 /3 * /home/user/script.sh در روز اول هر فصل (۳ ماه یکبار) راس ساعت ۸ صبح یک اسکریپت خاص اجرا میشود.
- 0 * * * * /root/backup.sh هر ساعت بکاپ گرفته میشود.
- *** * * * * /scripts/script.sh; /scripts/script2.sh** دو اسکریپت با هم در یک کرون جاب اجرا میشوند.
- @reboot /root/clearcache.sh پاک کردن کش سرور هنگام راهاندازی سیستم.
- 0 8 1-7 * 1 /scripts/script.sh در اولین دوشنبه هر ماه راس ساعت ۸ صبح یک اسکریپت خاص اجرا میشود.
- 5 4 * * 0 /root/backup.sh هر یکشنبه صبح راس ساعت ۴:۰۵ بکاپ گرفته میشود.
- 15 9 1,20 * * /scripts/monitor.sh در روزهای اول و بیستم هر ماه راس ساعت۹:۱۵ شب سیستم نظارت میشود.
- @hourly /scripts/monitor.sh هر ساعت یک بار اسکریپت نظارتی اجرا میشود.
- 0 0 1,15 * 3 /scripts/script.sh هر چهارشنبه در روزهای اول تا پانزدهم هر ماه راس ساعت ۱۲ شب یک اسکریپت خاص اجرا میشود.
- 15 14 1 * * /root/clearcache.sh در اولین روز هر ماه راس ساعت ۲:۱۵ بعد از ظهر کش سیستم پاک میشود.
- 15 6 1 1 * /root/backup.sh در اولین روز ماه دی راس ساعت ۶:۱۵ صبح بکاپ گرفته میشود.
کلام آخر
کرون جاب یک دستیار هوشمند مشابه Siri در سیستمهای یونیکس است که میتوانید وظایف تکراری را به آن بسپارید تا به صورت خودکار اجرا شوند. در این مقاله به طور جامع کاربرد و نحوه کار این برنامه را بررسی کردهایم. امیدواریم که با مطالعه این مقاله به طور کامل با نحوه کار و مفهوم کرون جاب را آشنا شده باشید.