کرون جاب چیست؟ – هر آنچه باید برای شروع با Cron Job بدانید
![کرون جاب چیست؟ – هر آنچه باید برای شروع با Cron Job بدانید](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2024/07/network-administrator-who-sitting-behind-the-system-and-in-the-center-of-the-screen-word-cron-job-is-seen.jpg.webp)
کرون جابها نقش بسیار مهمی در حوزه اتوماسیون و خودکارسازی فرایندها دارند. این ابزار کاربردی در سیستمعاملهای لینوکس و یونیکس به منظور زمانبندی اجرا دستورات در فواصل زمانی مشخص مورد استفاده قرار میگیرد. به عنوان مثال، با تنظیم کرون جاب میتوان مشخص کرد که هر ماه یک مرتبه به صورت خودکار از پایگاه داده سایت نسخه پشتیبان تهیه شود یا هر هفته یک مرتبه در روز جمعه ایمیل اطلاعرسانی به صورت خودکار برای کاربران ارسال شود. استفاده از این ابزار به توسعه دهندگان و مدیران سیستم در افزایش بهرهوری و کاهش هزینهها کمک میکند. با توجه به اهمیت موضوع در این مطلب از مجله فرادرس به این سوال پاسخ داده خواهد شد که کرون جاب چیست و چه کاربردی دارد.
با مطالعه این مطلب یاد میگیریم که کاربرد کرون جاب چیست و با ویژگیها و مزایا و معایب این ابزار بیشتر آشنا خواهیم شد. در این مطلب قواعد و نحوه ایجاد کرون جاب در دایرکت ادمین، سی پنل و لینوکس به همراه چندین مثال عملی آموزش داده شده است. در نهایت با مطالعه این مطلب هر آنچه برای کار با کرون جاب نیاز دارید را خواهید آموخت.
کرون جاب چیست؟
برای پاسخ به این سوال که کرون جاب چیست بهتر است ابتدا مفهوم کرون را تعریف کنیم. «کرون» (Cron) در لغت به معنای چرخه یا دوره است و یکی از مفیدترین ابزارهای موجود در سیستمعامل لینوکس محسوب میشود. مدت زمان کرون در هر سیستم لینوکسی متفاوت است و توسط مدیر سیستم تعیین میشود. به عنوان مثال، مدیر سیستم میتواند با توجه به نیاز خود مدت زمان کرون را برابر ۱ دقیقه، ۱ ماه یا ۱ سال تعیین کند. علاوه بر این، هر مقدار دیگری نیز در بازههای زمانی مختلف برای کرون قابل تعیین است.
از کرون در لینوکس برای زمانبندی دستورات در یک زمان خاص استفاده میشود. این دستورات یا وظایف برنامهریزی شده تحت عنوان کرون جاب شناخته میشوند. به زبان ساده کرون جاب یک کار یا وظیفه از پیش برنامهریزی شده است که سیستم آن را در بازههای زمانی مشخصی به صورت خودکار اجرا میکند. از کرون جاب معمولاً برای پشتیبانگیریهای زمانبندی شده، نظارت بر فضای دیسک، حذف فایلها، گزارشگیری و به طور کلی هر فرایندی که به صورت دورهای نیاز باشد، میتوان استفاده کرد. در مجموع، قابلیت کرون جاب ابزاری قدرتمند برای زمانبندی کارها و وظایف مختلف در فواصل زمانی مشخص است که به خودکارسازی و تسهیل بسیاری از فرایندها کمک میکند.
مثال عملی از کاربرد کرون جاب
کرون جاب با توجه به زمانبندی دستورات در یک زمان خاص به خودکارسازی بسیار از فرایندهای تکراری کمک میکند. در واقع، کرون جاب را میتوان دستیاری توانمند برای انجام کارهای تکراری دانست. به عنوان مثال عملی از کاربرد کرون جاب شرایطی را در نظر بگیرید که به عنوان مدیر یک وبلاگ قصد دارید هر هفته در یک روز و ساعت مشخص مطلب جدیدی را در وبلاگ خود منتشر کنید. در شرایطی دیگر به عنوان مدیر یک فروشگاه آنلاین شاید قصد داشته باشید که هر ماه به صورت خودکار مشتریان خود را از محصولات و تخفیفهای جدید فروشگاه آگاه کنید. در هر دو سناریو عنوان شده میتوان از ابزار کرون جاب برای انجام فرایندهای مورد نظر استفاده کرد. علاوه بر این، بسیاری از کارهای دیگر را نیز میتوان با خیال آسوده به کرون جاب سپرد.
![مدیر وبلاگ پشت میز کارش روبرو مانیتور نشسته است و در حال منتشر کردن پست جدیدی در وبلاگ است - کرون جاب چیست](https://blog.faradars.org/wp-content/uploads/2024/07/blog-admin-who-sitting-at-her-desk-with-a-monitor-on-it-and-is-about-to-publish-new-article.jpg)
مهم ترین ویژگی های کرون جاب چیست؟
کرون جابها در سیستمعاملهای شبه یونیکس همچون لینوکس بخش مهمی از زمانبندی کارها را انجام میدهند. مهمترین ویژگی کرون جابها را میتوان قابلیت شخصیسازی بسیار بالای آنها دانست. با توجه به همین ویژگی مواردی همچون زمان اجرا، تعداد دفعات اجرا، ارسال نتیجه یا عدم ارسال آن و بسیاری از موارد دیگر مربوط به کرون جاب را میتوان شخصیسازی کرد. در ادامه سایر ویژگیهای مهم کرون جاب آورده شده است.
- خودکارسازی فرایندها
- تکرار پذیری
- انعطافپذیری بالا
- ارائه گزارش
- مدیریت منابع
- امنیت
کاربرد کرون جاب چیست؟
کرون جاب ابزاری برای زمانبندی وظایف و کارها مبتنی بر زمان در سیستمعاملهای شبه یونیکس نظیر لینوکس است. این ابزار به کاربران اجازه میدهد تا وظایف را برای اجرای خودکار در فواصل زمانی خاص برنامهریزی کنند. این وظایف میتوانند هر چیزی باشند، از اجرای اسکریپتها و برنامهها گرفته تا کارهای مرتبط با نگهداری سیستم همگی توسط کرون جابها قابل انجام هستند. در یک دستهبندی کلی کاربردهای کرون جاب عبارتنداز:
- انجام وظایف خودکار
- تعمیر و نگهداری سیستم
- دانلود یا آپلود دادهها
- نظارت و گزارش
- اجرای اسکریپت برنامهریزی شده
به منظور پاسخگویی بهتر به سوال کاربرد کرون جاب چیست، در ادامه هر کدام از کاربردهای ذکر شده در بالا توضیح داده خواهد شد.
انجام وظایف خودکار
از کرون جابها میتوان به منظور خودکارسازی بسیاری از کارهای تکراری نظیر پشتیبانگیری، پاکسازی فایلهای موقت، ارسال ایمیل، بروزرسانی پایگاه داده و سایر موارد استفاده کرد.
تعمیر و نگهداری سیستم
یکی دیگر از کاربردهای کرون جابها استفاده از آنها به منظور تعمیر و نگهداری سیستمها است. با استفاده از کرون جاب میتوان عملیاتهای مرتبط با تعمیر و نگهداری سیستم را به صورت برنامهریزی شده در ساعات خاصی از شبانه روز به صورت خودکار انجام داد. به عنوان مثال، بیشتر برنامههای حوزه پولی و بانکی در ساعات نیمه شب که کاربران کمتر فعال هستند، کارهای مرتبط با تعمیر و نگهداری سیستم را با استفاده از کرون جابها انجام میدهند.
![تکنسین شبکه در حال انجام عملیات نگه داری سیستم است و صفحه نمایش لپ تاپش نیز عبارت کرون را نشان میدهد](https://blog.faradars.org/wp-content/uploads/2024/07/network-technician-is-performing-maintenance-operations-and-his-laptop-screen-show-cron-word-in-center-of-display.jpg)
دانلود یا آپلود دادهها
با استفاده از کرون جاب میتوان عملیات دانلود یا آپلود داده بر روی سرورهای راه دور را در زمان مشخصی برنامهریزی کرد. برای آشنایی با راهاندازی سرور و اتصال به آن میتوانید فیلم آموزشی رایگان راه اندازی سرور در خانه و اتصال از راه دور فرادرس که لینک آن در ادامه آورده شده است را مشاهده کنید.
نظارت و گزارش
از کاربردهای دیگر کرون جابها میتوان به استفاده از آنها برای انجام امور نظارتی و دریافت گزارش اشاره کرد. با استفاده از کرون جابها میتوان اسکریپتهای نظارتی برای بررسی سلامت سیستم را در ساعات مشخصی اجرا و نتیجه حاصل را بررسی کرد. کرون جابها توانایی تولید گزارش و ثبت فعالیتهای سیستم را دارند.
اجرای اسکریپت برنامهریزی شده
به کمک کرون جابها میتوان هر اسکریپتی را در فواصل زمانی منظم اجرا کرد که این امر به خودکارسازی فرایندهای سیستم کمک میکند. در مجموع، کرون جاب ابزاری همه کاره و مطمئن برای خودکارسازی وظایف و اطمینان از اجرای فرایندهای ضروری در فواصل زمانی مشخص است.
![مدیر سیستم نشسته پشت لپ تاپش و در حال زمان بندی وظایف با استفاده از کرون جاب است - کرون جاب چیست](https://blog.faradars.org/wp-content/uploads/2024/07/system-administrator-sitting-behind-his-laptop-using-cron-job-to-schedule-tasks.jpg)
مزایای کرون جاب چیست؟
بعد از آشنایی با مفهوم کرون جاب و کارکردهای آن در این بخش به این سوال پاسخ داده خواهد شد که مزایای این ابزار چیست. در ادامه مهمترین مزایای کرون جاب آورده شده است.
- خودکارسازی: کرون جاب با خودکارسازی اجرای اسکریپتها و دستورات انجام کارهای روتین را تسهیل میکند.
- انعطافپذیری: با استفاده از کرون جاب میتوان هر کاری زمانبندی کرد از یک اسکریپت ساده گرفته تا برنامههای پیچیده با کرون جاب قابل برنامهریزی هستند.
- دقت بالا: کارهای مختلف را میتوان خیلی دقیق برنامهریزی کرد تا در زمان معین انجام شوند.
- سادگی: سینتکس کرون بسیار ساده است و تنها بعد از یک مرتبه استفاده نحوه زمانبندی کارها با آن را فرا خواهید گرفت.
- مدیریت منابع: با زمانبندی وظایف به کمک کرون جاب در ساعات کم ترافیک میتوان استفاده از منابع را بهینه کرد.
معایب کرون جاب چیست؟
کرون جاب نیز همانند هر سیستم و ابزار دیگری در کنار مزایای خود معایبی نیز دارد. در ادامه مهمترین معایب کرون جاب آورده شده است.
- پیچیدگی برای زمانبندی پیشرفته: با وجود سادگی زمانبندی اولیه با کرون جاب در صورت نیاز به زمانبندی پیشرفته کاربران تازه کار با مشکل مواجه خواهند شد.
- فاقد ضمانت اجرا: در صورت از کار افتادن سیستم یا اجرا نشدن کرون دستورات و وظایف برنامهریزی شده اجرا نخواهند شد. همچنین، هیچ گونه مکانیزم داخلی به منظور اجرای مجدد کارهای از دست رفته در این ابزار وجود ندارد.
- مبتنی بر زمان: کرون برای انجام وظایف و کارهای مبتنی بر زمان گزینه بسیار خوبی است، اما از این ابزار برای انجام کارهای مبتنی بر رویداد نمیتوان استفاد کرد.
- اشکالزدایی دشوار: در صورت موفقیت آمیز نبودن یک کرون جاب ممکن است دلیل آن به سادگی مشخص نشود.
- مشکلات امنیتی: تعیین تنظیمات نادرست برای کرون جاب میتواند سبب بروز خطرات و تهدیدهای امنیتی شود. این موضوع در شرایطی که کرون جاب مجوز اجرای دستورات قدرتمند را داشته باشد، میتواند حادتر شود.
آشنایی با مزایا و معایب کرون جاب میتواند به تصمیمگیری بهتر در خصوص استفاده از این ابزار کمک کند. در این شرایط میتوانید تصمیم بگیرید که آیا کرون جاب ابزار مناسبی برای زمانبندی کارهای شما میتواند باشد یا خیر.
یادگیری لینوکس با فرادرس
یادگیری سیستمعامل لینوکس و توانایی کار با آن تجربه بسیار ارزشمندی برای تمام فعالان حوزه کامپیوتر محسوب میشود. به منظور یادگیری لینوکس باید در گام نخست با توجه به نیاز و سطح تخصص خود توزیع لینوکس مناسب را انتخاب کنید. برای شروع «اوبونتو» (Ubuntu) گزینه مناسبی برای مبتدیان محسوب میشود. در گام بعدی باید محیط لینوکس را به عنوان سیستمعامل اصلی یا در قالب ماشین مجازی راهاندازی کنید. سپس، نیاز است تا دستورات اساسی موجود در لینوکس که برای تعامل با آن ضروری است را یاد بگیرید. به عنوان گامهای بعدی یادگیری نیز آشنایی با سیستم فایل لینوکس و مجوزهای آن توصیه میشود.
![دوره آموزش مقدماتی لینوکس فرادرس](https://blog.faradars.org/wp-content/uploads/2024/07/linux-course-faradars.jpg)
برای شروع، میتوانید از فیلم آموزش رایگان نصب و راهاندازی سیستمعامل لینوکس فرادرس استفاده کنید که لینک آن در زیر آورده شده است.
همچنین اگر میخواهید سیستمعامل لینوکس و حوزههای مرتبط با آن را به طور کامل یاد بگیرید و با مثالها و تمرینهای مختلف کار کنید، پیشنهاد میشود از فیلم آموزش سیستمعامل لینوکس فرادرس کمک بگیرید که لینک آن در ادامه آورده شده است.
کرون جاب در دایرکت ادمین
دایرکت ادمین به عنوان یکی از معروفترین نرمافزارهای مدیریت وب سرویسها از کرون جابها پشتیبانی میکند. با استفاده از رابط کاربری دایرکت ادمین به سادگی میتوانید کرون جابهای جدید را ایجاد و مدیریت کنید. در صورتی که از دایرکت ادمین برای مدیریت سرویسها و دامنهها مربوط به وبسایت خود استفاده میکنید به سادگی با استفاده از رابط کاربری آسان این نرمافزار میتوانید کرون جاب ایجاد کنید.
در ادامه این بخش نحوه ایجاد کرون جاب در دایرکت ادمین آورده شده است. به عنوان نخستین گام لازم است تا در صفحه آغازین دایرکت ادمین از بخش Advanced Features یا همان تنظیمات پیشرفته بر روی گزینه cronjobs کلیک کنید. این بخش در تصویر زیر نشان داده شده است.
![صفحه نخست دایرکت ادمین که بخش کرون جاب را نشان میدهد](https://blog.faradars.org/wp-content/webp-express/webp-images/doc-root/wp-content/uploads/2024/07/DirectAdmin-main-page-cronjobs-option.png.webp)
بعد از انتخاب گزینه cronjobs در صفحه اصلی دایرکت ادمین، صفحه جدیدی همانند تصویر زیر برای ایجاد کرون جاب جدید نمایش داده خواهد شد.
در تصویر بالا با تنظیم مقادیر مشخص شده میتوان کرون جاب را پیکربندی کرد. توسعه دهندگان با استفاده از این رابط کاربری به سادگی میتوانند کرون جاب را راهاندازی کنند. به منظور ایجاد کرون جاب در دایرکت ادمین باید ۶ فیلد مشخص شده را تکمیل کرد. در ادامه هر کدام از فیلدهای مشخص شده در تصویر بالا آورده شده است.
- Minute: نشان دهنده دقیقه و مقادیر مجاز آن از ۰ تا ۵۹ است.
- Hour: نشان دهنده ساعت و مقادیر مجاز آن از ۰ تا ۲۳ است.
- Day of Month: نشان دهنده روز مشخصی از ماه و مقادیر مجاز آن از ۱ تا ۳۱ است.
- Month: نشان دهنده ماه و مقادیر مجاز آن از ۱ تا ۱۲ است.
- Day of Week: نشان دهنده روز مشخصی از هفته و مقادیر مجاز آن بین ۰ تا ۷ است. با توجه به استفاده از تقویم میلادی مقدار ۱ نشان دهنده روز دوشنبه و مقدار ۰ یا ۷ روز یکشنبه را نشان میدهد.
- Command: دستور یا اسکریپت مورد نظر که باید اجرا شود.
در ادامه این بخش نحوه تنظیم متغیرها و قواعد مربوط به ایجاد کرون جاب در دایرکت ادمین بررسی خواهد شد.
قواعد تعیین کرون جاب در دایرکت ادمین
به منظور ایجاد کرون جاب از طریق رابط کاربری دایرکت ادمین و تنظیم مقادیر مربوط به فیلدهای مشخص شده در این بخش باید به برخی نکات توجه داشت. در ادامه قواعد تعیین مقادیر فیلدهای کرون جاب در دایرکت ادمین آورده شده است.
- برای تعیین مقادیر مربوط به زمان تنها از اعداد و کاراکتر (*) میتوان استفاده کرد.
- مقدار پیشفرض برای هر کدام از فیلدها کاراکتر (*) است.
- امکان استفاده از کاما (،) برای تعیین زمانهای دقیق و استفاده از خط تیره (-) برای تعیین محدوده زمانی وجود دارد.
در ادامه این بخش هر کدام از عملگرهای قابل استفاده در کرون جاب و کاربردشان توضیح داده خواهد شد.
عملگرهای مورد استفاده برای ایجاد کرون جاب
به منظور تنظیم دقیق کرون جاب برای انجام دستورات و اسکریپتهای مشخص شده باید با عملگرهای قابل استفاده در این بخش به خوبی آشنا باشید. در ادامه فهرستی از عملگرهای مجاز قابل استفاده در زمانبندی کرون جاب به همراه توضیحات کاملی در خصوص هر کدام ارائه شده است. مهمترین عملگرهای قابل استفاده در کرون جاب عبارتنداز:
- ستاره (*)
- کاما (,)
- خط تیره (-)
- جداکننده (/)
- آخرین (L)
- هشتگ (#)
در ادامه این بخش به این سوال پاسخ داده خواهد شد که کاربرد عملگرها برای ایجاد کرون جاب چیست و چگونه میتوان از آنها برای ایجاد کرون جاب کمک گرفت.
کاربرد عملگر ستاره در کرون جاب چیست؟
عملگر ستاره (*) در کرون جاب نشان دهنده تمام مقادیر ممکن برای یک فیلد است. به عنوان مثال، در صورت قرار دادن عملگر ستاره در بخش «ساعت» (Hour) دستورات مشخص شده هر ساعت اجرا خواهند شد. به طریقی مشابه در صورت قرار دادن عملگر ستاره در بخش «دقیقه» (Minute) دستورات مشخص شده هر دقیقه اجرا میشوند.
![برنامه نویس نشسته پشت کامپیوترش و در حال خواندن مقاله ای در خصوص کرون جاب - کرون جاب چیست](https://blog.faradars.org/wp-content/uploads/2024/07/programmer-sitting-behind-his-computer-reading-an-article-about-cron-job.jpg)
عملگر ستاره به صورت پیشفرض برای تمام فیلدهای کرون جاب موجود در دایرکت ادمین مشخص شده است. در صورت تنظیم عمگلر ستاره برای تمام فیلدهای کرون جاب در دایرکت ادمین اسکریپت یا دستورات مشخص شده به صورت پیوسته اجرا خواهند شد و این مسئله فشار بسیار زیادی به سرور وارد خواهد کرد. در نتیجه، دایرکت ادمین اجازه تنظیم عملگر ستاره برای تمام فیلدهای کرون جاب را نمیدهد.
کاربرد عملگر کاما در کرون جاب چیست؟
با استفاده از عملگر کاما (,) میتوان چندین مقدار مختلف را برای یک فیلد مشخص کرد. به عنوان مثال، در صورت تعیین مقادیر ۷,۱۲ برای فیلد «روز ماه» (Day of Month) کرون جاب در روزهای هفتم و دوازدهم هر ماه اجرا خواهد شد. به طریقی مشابه با تعیین مقادیر ۱,۳ برای فیلد «روز هفته» (Day of Week) کرون جاب در روزهای دوشنبه و چهارشنبه هر هفته اجرا میشود. نکتهای که باید به آن توجه داشت این است که در بخش روز هفته مقدار ۱ روز اول هفته میلادی یا همان دوشنبه را نشان میدهد.
کاربرد عملگر خط تیره در کرون جاب چیست؟
با استفاده از عملگر خط تیره (-) میتوان یک محدوده برای مقادیر مشخص کرد. به عنوان مثال، در صورت قرار دادن مقدار ۶-۱۲ برای بخش مربوط به «ماه» (Month) اسکریپت مورد نظر از ماه «ژوئن» (Juane) تا ماه «دسامبر» (December) اجرا خواهد شد.
کاربرد عملگر جداکننده در کرون جاب چیست؟
از عملگر جداکننده (/) برای تقسیم فواصل زمانی استفاده میشود. به عنوان مثال، اگر بخواهید یک اسکریپت ۳ مرتبه در طول یک روز اجرا شود، آنگاه باید مقدار ۳/* را برای فیلد ساعت مشخص کنید. در این صورت اسکرپیت ۳ مرتبه در طول روز یا هر ۸ ساعت یکبار اجرا خواهد شد.
کاربرد عملگر آخرین در کرون جاب چیست؟
از عملگر آخرین (L) برای نشان دادن آخرین روز در یک هفته یا ماه استفاده میشود. به عنوان مثال، قرار دادن مقدار ۴L در بخش روز هفته نشان دهنده آخرین پنجشنبه ماه است.
کاربرد عملگر هشتگ در کرون جاب چیست؟
نحوه استفاده از عملگر هشتگ (#) به این صورت است که ابتدا باید روز هفته یعنی مقداری بین (۰ تا ۶) و سپس شماره هفته یعنی مقداری بین (۱ تا ۵) را انتخاب کرد. به عنوان مثال، با استفاده از عملگر هشتگ میتوان تعیین کرد که اسکریپت مورد نظر ما در روز دوشنبه از هفته سوم ماه اجرا شود. برای این منظور باید عبارت ۱#۳ را در بخش روز هفته قرار داد.
چند مثال عملی از ایجاد کرون جاب در دایرکت ادمین
بعد از آشنایی با نحوه ایجاد کرون جاب در دایرکت ادمین و قواعد و عملگرهای مربوط به آن در این بخش از نوشته چند مثال عملی از نحوه ایجاد کرون جاب در دایرکت ادمین آورده شده است.
بنابراین، اگر قصد دارید با استفاده از پنل دایرکت ادمین دستورات یا اسکریپت خاصی را در زمان مشخصی اجرا کنید پیشنهاد میشود که به مثالهای زیر توجه کنید.
اجرای اسکریپت به صورت ماهانه در زمانی مشخص
یکی از ابتداییترین و در عین حال سادهترین روشهای کار با کرون جاب اجرای یک اسکریپت یا دستور در زمان مشخصی به صورت ثابت است. به عنوان مثال، قصد داریم هر ماه در روز دوم ماه در ساعت ۹ صبح اسکریپت مربوط به ارسال حقوق کارمندان از طریق پایا را اجرا کنیم. برای این منظور به سادگی از طریق بخش کرون جاب از پنل دایرکت ادمین میتوان با تنظیم مولفههای زیر این کار را انجام داد.
- دقیقه: ۰۰
- ساعت: ۰۹
- روز از ماه: ۰۲
- ماه: *
- روز از هفته: *
با تنظیم مقادیر بالا در بخش کرون جاب دایرکت ادمین اسکریپت مورد نظر به صورت ماهانه در تاریخ و زمان مشخص شده اجرا خواهد شد. نکتهای که باید در تنظیم مقادیر به آن توجه کرد این است که زمانبندیها بر اساس تقویم میلادی در پنل دایرکت ادمین صورت میگیرد.
اجرای اسکریپت به تعداد مشخصی در طول یک روز
گاهی اوقات نیاز است تا یک اسکریپت مشخص به تعداد معینی در طول یک روز اجرا شود. به عنوان مثال، نیاز است هر روز ۳ مرتبه اطلاعرسانی به کاربران از طریق ایمیل صورت گیرد. در صورتی که قصد داشته باشیم که یک ایمیل اطلاعرسانی ۳ مرتبه در طول روز برای کاربران ارسال شود، آنگاه مقادیر زیر را برای کرون جاب در دایرکت ادمین باید مشخص کرد.
- دقیقه: *
- ساعت: ۳/*
- روز از ماه: *
- ماه: *
- روز از هفته: *
در مثال بالا با استفاده از عملگر جداکننده تعداد دفعات اجرای اسکریپت در طول روز مشخص شده است. بدین ترتیب دستور مورد نظر هر ۸ ساعت یک مرتبه اجرا خواهد شد.
![مدیر سیستم نشسته پشت کامپیوتر در حال زمانبندی اجرا دستورات با کرون جاب در حالی که ساعت بزرگی نیز در بالای سرش قرار دارد - کرون جاب چیست](https://blog.faradars.org/wp-content/uploads/2024/07/system-administrator-scheduling-the-execution-of-commands-with-cron-job-while-big-clock-is-placed-above-his-head-revised.jpg)
اجرای اسکریپت به تعداد مشخص و در ساعت مشخصی از روز
در مثال قبلی اسکریپت مشخص شده ۳ مرتبه در طول روز اجرا میشد، ولی ساعت اجرای آن مشخص نبود. گاهی اوقات نیاز است تا اسکریپت یا دستوری در ساعت مشخصی از روز اجرا شود. به عنوان مثال، قصد داریم هر روز در ساعتهای ۸، ۱۲ و ۲۱ مطلب جدیدی را در وبلاگ خود منتشر کنیم. برای این منظور دیگر امکان استفاده از روش قبلی وجود ندارد. بنابراین، نیاز است تا مولفههای مربوط به کرون جاب در دایرکت ادمین به صورت زیر مقداردهی شوند.
- دقیقه: *
- ساعت: ۲۱,۱۲,۸
- روز از ماه: *
- ماه: *
- روز از هفته: *
با تعیین مقادیر بالا اسکریپت مورد نظر هر روز در ساعتهای ۸، ۱۲ و ۲۱ اجرا خواهد شد.
اجرای اسکریپت در روز مشخصی از هفته
شرایطی را در نظر بگیرید که قصد داریم هر هفته در روز جمعه در ساعتهای ۸ و ۲۲ ایمیلهای اطلاعرسانی سایت را به کاربران ارسال کنیم. برای اجرای اسکریپت به این شکل باید مولفههای مربوط به کرون جاب را به صورت زیر مقداردهی کرد.
- دقیقه: *
- ساعت: ۲۲,۸
- روز از ماه: *
- ماه: *
- روز از هفته: ۵
در مثال بالا تعیین مقدار روز از هفته برابر با ۵ بدین معنی است که اسکریپت در روز جمعه هر هفته اجرا خواهد شد. همچنین با توجه به مقداردهی فیلد ساعت زمان اجرا نیز دو مرتبه در طول روز و در ساعتهای ۸ و ۲۲ خواهد بود.
اجرای اسکریپت در یک بازه زمانی مشخص
گاهی اوقات نیاز است که اسکریپت یا دستوری در یک بازه زمانی مشخص اجرا شود. برای این منظور میتوان از عملگر خط تیره (-) استفاده کرد. به عنوان مثال، قصد داریم اسکریپتی را بین روزها ۲۵ تا ۳۰ هر ماه در ساعت ۲۱ اجرا کنیم. برای این منظور باید مولفههای کرون جاب را به صورت زیر در دایرکت ادمین مقداردهی کرد.
- دقیقه: *
- ساعت: ۲۱
- روز از ماه: ۲۵-۳۰
- ماه: *
- روز از هفته: *
با تعیین مقادیر بالا اسکریپت مورد نظر بین روزهای ۲۵ تا ۳۰ هر ماه در ساعت ۲۱ اجرا خواهد شد.
کرون جاب در سی پنل
«سی پنل» (Cpanel) نیز به عنوان یکی از محبوبترین کنترل پنلهای مدیریت وبسرویسها از قابلیت کرون جاب پشتیبانی میکند. با استفاده از رابط کاربری سی پنل به سادگی میتوان کرون جابهای جدید را ایجاد و مدیریت کرد. برای یادگیری بیشتر در مورد سی پنل میتوانید فیلم آموزش سی پنل برای مدیریت هاست فرادرس که لینک آن در ادامه آورده شده است را مشاهده کنید.
برای ایجاد کرون جاب از طریق سی پنل مراحل زیر را باید دنبال کنید. در گام نخست همانند تصویر زیر در صفحه اصلی محیط سی پنل از بخش ADVANCED گزینه Cron Jobs را انتخاب کنید.
با انتخاب گزینه Cron Jobs بخش زیر نمایش داده خواهد شد.
در این بخش همانند پنل دایرکت ادمین چندین فیلد برای ایجاد کرون جاب جدید مشخص شده است. برای ایجاد کرون جاب جدید باید این فیلدها را تکمیل کرد. فیلدهای موجود در این بخش عبارتنداز:
- Minute: نشان دهنده دقیقه و مقادیر مجاز آن از ۰ تا ۵۹ است.
- Hour: نشان دهنده ساعت و مقادیر مجاز آن از ۰ تا ۲۳ است.
- Day: نشان دهنده روز مشخصی از ماه و مقادیر مجاز آن از ۱ تا ۳۱ است.
- Month: نشان دهنده ماه و مقادیر مجاز آن از ۱ تا ۱۲ است.
- Weekday: نشان دهنده روز مشخصی از هفته و مقادیر مجاز آن بین ۰ تا ۷ است. با توجه به استفاده از تقویم میلادی مقدار ۱ نشان دهنده روز دوشنبه و مقدار ۰ یا ۷ روز یکشنبه را نشان میدهد.
- Command: دستور یا اسکریپت مورد نظر که باید اجرا شود.
بعد از تنظیم مقادیر برای این فیلدها برای ایجاد کرون جاب جدید باید بر روی دکمه Add New Cron Job کلیک کنید.
استفاده از زمان بندی پیش فرض کرون جاب در سی پنل
یکی از امکانات بسیار خوب فراهم شده در محیط سی پنل امکان استفاده از زمانبندی پیشفرض برای ایجاد کرون جاب است. تعدادی از پرکاربردترین و محبوبترین زمانبندیهای کرون جاب در بخش Common Settings قرار گرفتهاند. برای مشاهده زمانبندیهای پیشفرض کرون جاب در سی پنل کافی است بر روی گزینه Common Settings کلیک کنید. تصویر زیر گزینههای زمانبندی پیشفرض کرون جاب در سی پنل را نشان میدهد.
با انتخاب هر کدام از گزینههای موجود در لیست کشویی بالا عملگرهای موجود به صورت خودکار تنظیم خواهند شد. در ادامه زمانبندیهای موجود در این بخش به همراه توضیح هر کدام آورده شده است.
- Once Per Minute: هر یک دقیقه یک مرتبه دستورات را اجرا خواهد کرد.
- Once Per Five Minutes: هر ۵ دقیقه یک مرتبه دستورات را اجرا خواهد کرد.
- Twice Per Hour: هر یک ساعت دو مرتبه دستوارت را اجرا خواهد کرد.
- Once Per Hour: در هر ساعت یک مرتبه دستورات را اجرا خواهد کرد.
- Twice Per Day: دو مرتبه در طول روز دستورات را اجرا خواهد کرد.
- Once Per Day: یک مرتبه در طول روز دستورات اجرا میشود.
- Once Per Week: یک مرتبه در طول هفته دستورات اجرا خواهد شد.
- On the 1st and 15th of the Month: در روزهای اول و پانزدهم هر ماه دستورات اجرا میشود.
- Once Per Month: یک مرتبه در طول ماه دستورات اجرا خواهند شد.
- Once Per Year: دستورات هر سال یک مرتبه اجرا خواهند شد.
استفاده از گزینههای زمانبندی پیشفرض در سی پنل ایجاد و زمانبندی کرون جابهای جدید را تسریع و تسهیل میکند. همچنین، در صورتی که گزینههای ارائه شده در بالا نیاز شما برای زمانبندی کرون جاب را برآورده نکرد، میتوانید با استفاده از عملگرهای کرون جاب همانند بخش قبلی زمانبندی مورد نیاز خود را انجام دهید.
کرون جاب در لینوکس
در بخشهای قبلی با مفهوم کرون جاب آشنا شدید و نحوه ایجاد آن از طریق کنترل پنل دایرکت ادمین و سی پنل نیز توضیح داده شد. بر همین اساس، در این بخش نحوه ایجاد کرون جاب در لینوکس مورد بررسی قرار خواهد گرفت.
پیش از ایجاد کرون جاب در لینوکس نیاز است تا با دو مفهوم اساسی مربوط به آن آشنا شوید.
- cron daemon: این برنامه یک سرویس پس زمینه در سیستمعامل لینوکس است که همواره در حال اجرا است و مسئولیت زمانبندی کرون جابها را دارد.
- crontab: تنظیمات مربوط به کرون جابها در فایلی به نام «کرون تب» (crontab) صورت میگیرد. با استفاده از این فایل میتوان کرون جابها را زمانبندی، ویرایش و مدیریت کرد.
بنابراین، برای ایجاد و مدیریت کرون جابها در سیستمعامل لینوکس باید از فایل کرون تب استفاده کرد. در ادامه، سینتکس کرون جاب و نحوه ایجاد آن در سیستمعامل لینوکس مورد بررسی قرار خواهد گرفت.
سینتکس کرون جاب در لینوکس
برای ایجاد یک کرون جاب جدید با استفاده از فایل crontab باید از سینتکس زیر استفاده کرد.
1MIN HOUR DOM MON DOW CMD
سینتکس ارائه شده در بالا دارای ۶ فیلد است که در ادامه هر کدام توضیح داده شدهاند.
- MIN: نشان دهنده دقیقه (مقادیر مجاز: ۰-۵۹)
- HOUR: نشان دهنده ساعت (مقادیر مجاز: ۰-۲۳)
- DOM: نشان دهنده روز مشخصی از ماه (مقادیر مجاز: ۱-۳۱)
- MON: نشان دهنده ماه (مقادیر مجاز: ۱-۱۲)
- DOW: نشان دهنده روز مشخصی از هفته (مقادیر مجاز: ۰-۷)
- CMD: آدرس اسکریپت مورد نظر در سیستم
به عنوان مثال، دستور زیر اسکریپتی را در روز ۱ «ژانویه» (January) در ساعت ۹ صبح زمانبندی خواهد کرد.
10 9 1 1 * /path/to/your_script.sh
هر کدام از فیلدهای مشخص شده در بالا محدوده مشخصی از مقادیر را میتوانند بپذیرند. علاوه بر این، در صورت قرار دادن کاراکتر (*) تمام مقادیر معتبر خواهند بود. پیشتر در همین مطلب عملگرهای مربوط به کرون جاب و کاربرد هر کدام از آنها بررسی شده است. بنابراین، در ادامه این بخش به نحوه ایجاد کرون جاب در لینوکس خواهیم پرداخت. پیشتر در مطلب زیر از مجله فرادرس دستورات کاربردی لینوکس به طور کامل مورد بررسی قرار گرفته است.
راه اندازی کرون جاب در لینوکس
برای ایجاد یک کرون جاب جدید در لینوکس در نخستین گام باید فایل پیکربندی crontab را باز کنید. دستور زیر در ترمینال لینوکس این فایل پیکربندی را برای کاربر فعلی باز میکند.
1crontab -e
در صورتی که برای نخستین بار به فایل crontab دسترسی پیدا کرده باشید، آنگاه سیستم فایل جدیدی را ایجاد خواهد کرد. از نسخه 22.04 لینوکس به بعد کاربران میتوانند ویرایشگر کد مورد نظر خود را انتخاب کنند.
![باز کردن فایل پیکربندی crontab در لینوکس](https://blog.faradars.org/wp-content/uploads/2024/07/open-crontab-file-in-linux.jpg)
در تصویر بالا گزینههای مربوط به انتخاب ویرایشگر کد نشان داده شده است. در این مثال، عدد ۱ که نشان دهنده ویرایشگر nano است، برای باز کردن فایل پیکربندی crontab انتخاب شده است. در صورت نیاز به پیکربندی فایل crontab برای کاربر دیگری از سیستم میتوانید از عملگر-u استفاده کنید. کد زیر نحوه انتخاب کاربر دیگری برای ویرایش و پیکربندی crontab را نشان میدهد.
1crontab -u [username] -e
ایجاد کرون جاب جدید در لینوکس
بعد از باز کردن فایل پیکربندی crontab نیاز است تا عبارت کرون جاب را مطابق با سینتکس آن در ترمینال وارد کنید.
115 22 * * * /home/phoenixnap/script.sh
دستور بالا اسکریپتscript.sh را هر روز در ساعت ۲۲:۱۵ زمانبندی و اجرا خواهد کرد.
دریافت خروجی اجرای کرون جاب در لینوکس
سیستم کرون در لینوکس بعد از اجرای کرون جاب خروجی حاصل از آن را در قالب ایمیلی به دارنده فایل crontab ارسال میکند. قالب ایمیل ارسالی توسط کرون به پیکربندی سیستم ایمیل و خروجی اسکریپت اجرا شده بستگی دارد. تصویر زیر نمونهای از ایمیل ارسالی توسط کرون جاب را نشان میدهد.
![قالب ایمیل ارسالی توسط کرون جاب](https://blog.faradars.org/wp-content/uploads/2024/07/cron-job-output-email-format.jpg)
از این قابلیت به منظور پیگیری وظایف و کارهای برنامهریزی شده میتوان استفاده کرد. البته امکان غیرفعالسازی ارسال ایمیل مربوط به خروجی کرون جاب وجود دارد. با اضافه کردن عبارت>/dev/null 2>&1 به انتهای کرون جاب میتوان ارسال ایمیل را غیرفعال کرد.
10 0 * * * /path/to/script.sh > /dev/null 2>&1
دستور ارائه شده در بالا ایمیلهای ارسالی توسط کرون را به طور کامل غیرفعال خواهد کرد. علاوه بر این، با تنظیم متغیرMAILTO میتوان ایمیلهای ارسالی توسط کرون را به آدرس مشخصی هدایت کرد. برای این منظور پیش از زمانبندی کرون جاب باید این متغیر را تنظیم کرد.
1MAILTO='test@gmail.com'
215 22 * * * /path/to/script.sh
در مثال بالا خروجی حاصل از اجرای کرون جاب به ایمیل مشخص شده در متغیرMAILTO ارسال خواهد شد.
مشاهده کرون جاب های فعال در لینوکس
امکان مشاهده فهرست کامل تمام کرون جابهای فعال بر روی سیستم از طریق اجرای دستور زیر وجود دارد.
1crontab -l
با اجرای دستور بالا تمام کرون جابهای فعال بر روی سیستم را مشاهده خواهید کرد. تصویر زیر خروجی حاصل از اجرای دستور بالا را نشان میدهد.
![فهرست تمام کرون جاب های فعال بر روی سیستم](https://blog.faradars.org/wp-content/uploads/2024/07/view-list-of-all-cron-job-in-linux.jpg)
مدیریت کرون جاب در لینوکس
به منظور حذف، ویرایش، مشاهده و به طور کلی مدیریت کرون جابها در لینوکس از دستورهای زیر میتوان استفاده کرد.
- مشاهده کرون جابها: دستورcrontab -l تمام کرون جابهای موجود در سیستم را لیست میکند.
- ویرایش کرون جابها: با استفاده از دستورcrontab -e میتوان فایل crontab را ویرایش کرد. از طریق این دستور امکان اضافه کردن کرون جابهای جدید یا ویرایش کرون جابهای فعلی وجود دارد.
- حذف کرون جابها: برای حذف کرون جابها میتوان فایل crontab را ویرایش کرد. همچنین، با استفاده از دستورcrontab -r امکان حذف تمام کرون جابها وجود دارد.
با مدیریت و بهینهسازی کرون جابها میتوان عملکرد سیستم را نیز بهینهسازی کرد.
رشته های ویژه در کرون جاب چیست؟
عملگرهای ویژهای در کرون جاب وجود دارند که با استفاده از آنها میتوان فرایند ایجاد کرون جاب و زمانبندیهای مربوط به آن را خلاصهسازی کرد. در واقع، با استفاده از این رشتههای ویژه دیگر نیازی به نوشتن سینتکس اصلی کرون جاب و مشخص کردن ۵ فیلد اصلی مربوط به زمان در آن نیست. رشتههای ویژه کرون جاب به صورت زیر هستند.
- hourly@: در هر ساعت یک مرتبه اسکریپت اجرا خواهد شد.
- daily@ یا midnight@: اسکریپت روزی یک مرتبه در نیمه شب اجرا خواهد شد.
- weekly@: اسکریپت یک مرتبه در هفته در نیمه شب یکشنبه اجرا میشود.
- monthly@: اسکریپت یک مرتبه در اولین روز ماه اجرا خواهد شد.
- yearly@ یا annually@: اسکریپت یک مرتبه در سال در نیمه شب اول ژانویه اجرا خواهد شد.
- reboot@: دستورات یک مرتبه در زمان راهاندازی مجدد سیستم اجرا خواهند شد.
برای درک بهتر رشتههای فوق معادل آنها در سینتکس کرون جاب در جدول زیر آورده شده است.
رشته | معادل آن در سینتکس کرون جاب |
hourly@ | * * * * 0 |
daily@ یا midnight@ | * * * 0 0 |
weekly@ | 0 * * 0 0 |
monthly@ | * * 1 0 0 |
yearly@ یا annually@ | * 1 1 0 0 |
reboot@ | معادل ندارد |
چند مثال عملی از کاربرد کرون جاب
با استفاده از کرون جاب بسیاری از کارها و فرایندهای تکراری را میتوان خودکارسازی کرد. در واقع، این ابزار همچون ربات یا دستیار هوشمند همهکارهای است که توسعهدهندگان را از انجام کارهای تکراری نجات میدهد. بر همین اساس، بعد از آشنایی با مفهوم کرون جاب، نحوه ایجاد و قواعد مربوط به آن در این بخش به بررسی تعدادی از کاربردهای عملی آن خواهیم پرداخت. چند مورد از کاربردهای عملی کرون جاب عبارتنداز:
- پشتیبانگیری از پایگاه داده
- اجرای منظم یک اسکریپت
- راهاندازی مجدد سرور به صورت هفتگی
- ارسال ایمیل یادآوری به صورت ماهانه
- پاکسازی فایلهای موقتی به صورت منظم
در ادامه کد مربوط به پیادهسازی هر کدام از موارد بالا با استفاده از کرون جاب آورده شده است.
پشتیبان گیری از پایگاه داده
دستور زیر هر روز در نیمه شب از پایگاه داده یک نسخه پشتیبان تهیه میکند.
10 0 * * * /usr/bin/mysqldump -u root -pYourPassword database_name > /path/to/backup/database_name.sql
اجرای منظم یک اسکریپت
به منظور زمانبندی اجرای یک اسکریپت به صورت منظم هر ۵ دقیقه یکبار باید از کد زیر استفاده کرد.
1*/5 * * * * /path/to/script.sh
دستور بالا برای انجام کارهای تکراری همچون بررسی سلامت سیستم یا همگامسازی فایلها گزینه ایدهآلی محسوب میشود.
راهاندازی مجدد سرور به صورت هفتگی
با استفاده از کرون جاب میتوان راهاندازی مجدد سرور را نیز برنامهریزی کرد. دستور زیر این کار را انجام میدهد.
1@weekly /sbin/shutdown -r now
در مثال بالا از رشته ویژه@weekly به منظور راهاندازی مجدد سرور هر هفته یکبار استفاده شده است.
ارسال ایمیل یادآوری به صورت ماهانه
یکی دیگر از کاربردهای کرون جاب استفاده از آن برای زمانبندی ارسال ایمیل است. دستور زیر نحوه زمانبندی ارسال ایمیل به صورت ماهانه را نشان میدهد.
10 9 1 * * echo “Don’t forget to submit your report!” | mail -s “Monthly Report Reminder” user@example.com
کرون جاب زمانبندی شده در مثال بالا یک ایمیل یادآوری را در اولین روز هر ماه در ساعت ۹ صبح ارسال میکند.
پاکسازی فایلهای موقتی به صورت منظم
کاربرد دیگر کرون جاب استفاده از آن به منظور حذف و پاکسازی فایلهای موقتی موجود در سیستم است. دستور زیر فایلهای موقتی را به صورت منظم حذف میکند.
10 2 * * * /usr/bin/find /tmp -type f -mtime +1 -delete
کرون جاب زمانبندی شده در مثال بالا هر روز در ساعت ۲ نیمه شب فایلهای موقتی موجود در مسیر/tmp که بیش از یک روز قدمت دارند را پیدا کرده و حذف میکند.
از چه ابزارهایی برای مدیریت وب سایت میتوان استفاده کرد؟
علاوه بر کرون جاب که ابزاری کاربردی برای زمانبندی اجرا دستورات محسوب میشود، ابزارها و روشهای دیگری نیز وجود دارند که از آنها میتوان برای مدیریت بهتر وبسایت استفاده کرد. از جمله ابزارهای مدیریت وبسایت میتوان به سیستم کنترل نسخه Git، ابزارهای مانیتورینگ، ابزارهای تست و ارزیابی، ابزارهای SEO و سایر موارد اشاره کرد.
![مجموعه آموزشهای ابزار مدیریت وب سایت فرادرس](https://blog.faradars.org/wp-content/uploads/2024/07/faradars-courses-about-tools-for-website-management-.jpg)
بر همین اساس در پلتفرم فرادرس دورههای آموزش متعددی در حوزه ابزارهای مدیریت وبسایت منتشر شده است. برای دسترسی به مجموعه آموزشهای ابزار مدیریت وبسایت فرادرس میتوانید از لینک زیر استفاده کنید.
در ادامه برخی از عناوین پیشنهادی که در فهرست آموزشهای ابزار مدیریت وبسایت فرادرس قرار دارند، آورده شده است.
- فیلم آموزش سی پنل برای مدیریت هاست فرادرس
- فیلم آموزش سئو یا بهینهسازی سایت فرادرس
- فیلم آموزش تحلیل آمار سایت با گوگل آنالیتیکس فرادرس
- فیلم آموزش افزایش سرعت سایت وردپرسی فرادرس
جمعبندی
در دنیای سیستمعاملهای شبه یونیکس نظیر لینوکس کرون جاب ابزاری حیاتی برای خودکارسازی وظایف، افزایش کارایی و حفظ سلامت سیستم است. کرون جاب به مدیران سیستم کمک میکند تا کارهای مربوط به تعمیر و نگهداری سیستم را بسیار راحتتر انجام دهند. همچنین، توسعه دهندگان نیز با استفاده از کرون جاب میتوانند پروژههای شخصی خود را خودکارسازی کنند. استفاده درست از ظرفیتهای این ابزار ضمن صرفهجویی در هزینهها به مدیریت بهتر زمان نیز کمک میکند. بنابراین، درک کرون جاب و توانایی استفاده از آن مهارتی ارزشمند برای توسعه دهندگان و مدیران سیستم محسوب میشود. بر همین اساس در این مطلب از مجله فرادرس به این سوال پاسخ داده شده که کرون جاب چیست و چه کاربردی دارد.
در این مطلب مهمترین ویژگیها، کاربردها، مزایا و معایب کرون جاب مورد بررسی قرار گرفت. همچنین، چندین مثال عملی از نحوه ایجاد کرون جاب در دایرکت ادمین، سی پنل و لینوکس ارائه شد.