خانه » راهنمای مبتدیان برای CronJobs
لینوکس

راهنمای مبتدیان برای CronJobs

برنامه ریزی وظایف با کرون جابز در لینوکس

Cron یکی از مفیدترین ابزارهایی است که می توانید در هر سیستم عامل مشابه یونیکس پیدا کنید. Cron برای برنامه ریزی دستورات در یک زمان خاص استفاده می شود. این دستورات یا وظایف برنامه ریزی شده به عنوان “Cron Jobs” شناخته می شوند . Cron عموماً برای اجرای پشتیبان‌های برنامه‌ریزی‌شده، نظارت بر فضای دیسک، حذف فایل‌ها (به عنوان مثال فایل‌های log) به‌طور دوره‌ای که دیگر مورد نیاز نیستند، اجرای وظایف تعمیر و نگهداری سیستم و موارد دیگر استفاده می‌شود. در این آموزش، استفاده اولیه از Cron Jobs در لینوکس را همراه با مثال هایی خواهیم دید .

    ۱. راهنمای مبتدیان برای کرون جابز

    فرمت معمولی یک کار cron این است:

    Minute(0-59) Hour(0-24) Day_of_month(1-31) Month(1-12) Day_of_week(0-6) Command_to_execute

    فرمت cron job را به خاطر بسپارید یا تصویر زیر را چاپ کنید و آن را در میز خود نگه دارید.

    Cron Job Format

    در تصویر بالا، ستاره به بلوک های زمانی خاص اشاره دارد.

    برای نمایش محتویات فایل crontab کاربر وارد شده فعلی:

    $ crontab -l

    برای ویرایش cron jobهای کاربر فعلی، این کار را انجام دهید:

    $ crontab -e

    اگر بار اول است که این دستور را اجرا می کنید، از شما خواسته می شود که ویرایشگر را برای ویرایش فایل cron انتخاب کنید.

    no crontab for sk - using an empty one
    
    Select an editor. To change later, run 'select-editor'.
     1. /bin/nano <---- easiest
     2. /usr/bin/vim.basic
     3. /usr/bin/vim.tiny
     4. /bin/ed
    
    Choose 1-4 [1]:

    هر کدام را که مناسب شماست انتخاب کنید. در زیر یک فایل crontab نمونه نشان داده شده است.

    در این فایل باید cron job های خود را یکی یکی اضافه کنید.

    برای ویرایش crontab یک کاربر دیگر، به عنوان مثال mahdi، این کار را انجام دهید:

    $ crontab -u mahdi -e

    ۱.۱. آموزش کرون جابز

    در اینجا لیستی از متداول ترین دستورات cron job با مثال آورده شده است.

    ۱. برای اجرای یک کار cron در هر دقیقه ، قالب باید مانند زیر باشد.

    * * * * * <command-to-execute>

    به عنوان مثال اگر ساعت ۱۰:۰۰ باشد، کار بعدی در ۱۰:۰۱، ۱۰:۰۲، ۱۰:۰۳ و غیره اجرا می شود.

    ۲. برای اجرای cron job در هر دقیقه ۵ ، موارد زیر را در فایل crontab خود اضافه کنید.

    */5 * * * * <command-to-execute>

    به عنوان مثال اگر ساعت ۱۰:۰۰ باشد، کار بعدی در ۱۰:۰۵، ۱۰:۱۰، ۱۰:۱۵ و غیره اجرا می شود.

    ۳. برای اجرای cron job در هر ربع ساعت (یعنی هر ۱۵ دقیقه)، این را اضافه کنید:

    */15 * * * * <command-to-execute>

    به عنوان مثال اگر ساعت ۱۰:۰۰ باشد، کار بعدی در ۱۰:۱۵، ۱۰:۳۰، ۱۰:۴۵ و غیره اجرا می شود.

    ۴. برای اجرای یک کار cron هر ساعت در دقیقه ۳۰ :

    30 * * * * <command-to-execute>

    به عنوان مثال اگر ساعت ۱۰:۰۰ باشد، کار بعدی در ۱۰:۳۰، ۱۱:۳۰، ۱۲:۳۰ و غیره اجرا می شود.

    ۵. همچنین می توانید فواصل زمانی متعددی را که با کاما از هم جدا شده اند تعریف کنید. به عنوان مثال، کار cron زیر سه بار در هر ساعت، در دقیقه ۰، ۵ و ۱۰ اجرا می شود:

    0,5,10 * * * * <command-to-execute>

    ۶. یک کرون کار را هر نیم ساعت یکبار اجرا کنید ، یعنی در هر ۳۰ دقیقه :

    */30 * * * * <command-to-execute>

    به عنوان مثال اگر اکنون ساعت ۱۰:۰۰ باشد، کار بعدی در ۱۰:۳۰، ۱۱:۰۰، ۱۱:۳۰ و غیره اجرا می شود.

    7. هر ساعت یک کار را اجرا کنید (در دقیقه ۰):

    0 * * * * <command-to-execute>

    به عنوان مثال اگر اکنون ساعت ۱۰:۰۰ باشد، کار بعدی در ساعت های ۱۱:۰۰، ۱۲:۰۰، ۱۳:۰۰ و غیره اجرا می شود.

    ۸. هر ۲ ساعت یک کار را اجرا کنید :

    0 */2 * * * <command-to-execute>

    به عنوان مثال اگر اکنون ساعت ۱۰:۰۰ است، کار بعدی در ساعت ۱۲:۰۰ اجرا می شود.

    ۹. هر روز یک کار را اجرا کنید (ساعت ۰۰:۰۰ اجرا می شود):

    0 0 * * * <command-to-execute>

    ۱۰. هر روز ساعت ۳ صبح یک کار را اجرا کنید :

    0 3 * * * <command-to-execute>

    ۱۱. هر یکشنبه یک کار را اجرا کنید :

    0 0 * * SUN <command-to-execute>

    یا،

    0 0 * * 0 <command-to-execute>

    دقیقا ساعت ۰۰:۰۰ روز یکشنبه اجرا می شود.

    ۱۲. یک کار را در هر روز هفته از دوشنبه تا جمعه اجرا کنید ، یعنی هر روز هفته :

    0 0 * * 1-5 <command-to-execute>

    کار از ساعت ۰۰:۰۰ شروع خواهد شد.

    ۱۳. هر ماه یک کار را اجرا کنید (یعنی ساعت ۰۰:۰۰ روز اول ماه):

    0 0 1 * * <command-to-execute>

    ۱۴. یک کار را در ساعت ۱۶:۱۵ روز اول ماه اجرا کنید :

    15 16 1 * * <command-to-execute>

    ۱۵. یک کار را در هر سه ماهه اجرا کنید ، یعنی در روز از ماه ۱ در هر ۳ ماه:

    0 0 1 */3 * <command-to-execute>

    ۱۶. یک کار را در یک ماه خاص در یک زمان خاص اجرا کنید :

    5 0 * 4 * <command-to-execute>

    کار از ساعت ۰۰:۰۵ آوریل آغاز خواهد شد.

    ۱۷. هر ۶ ماه یک کار را اجرا کنید :

    0 0 1 */6 * <command-to-execute>

    این کرون کار از ساعت ۰۰:۰۰ روز اول ماه در هر 6 ماه شروع می شود.

    ۱۸. هر سال یک شغل را اجرا کنید :

    0 0 1 1 * <command-to-execute>

    این کرون کار از ساعت ۰۰:۰۰ روز اول ماه ژانویه آغاز خواهد شد.

    همچنین می توانیم از رشته های زیر برای تعریف کار cron استفاده کنیم.

    دستورشرح
    reboot@هنگام راه اندازی، یک بار اجرا کنید
    yearly@سالی یکبار اجرا می کند
    annually@(همانند yearly@)
    monthly@ماهی یکبار اجرا می کند
    weekly@هفته ای یکبار اجرا می کند.
    daily@روزی یکبار اجرا می کند.
    midnight@(همانند daily@).
    hourly@ساعتی یکبار اجرا می کند.

    ۱۹. برای اجرای یک کار هر بار که سرور راه اندازی مجدد می شود ، این خط را در فایل crontab خود اضافه کنید.

    @reboot <command-to-execute>

    ۲۰. برای حذف تمام کارهای cron برای کاربر فعلی:

    $ crontab -r

    ۲۱. برای استفاده دقیق از cron job، صفحات man را بررسی کنید.

    $ man crontab

    در این مرحله، درک اولیه ای از Crontab چیست و نحوه ایجاد، اجرا و مدیریت کارهای cron در لینوکس و سیستم های مشابه یونیکس داشتید.

    اکنون با برخی از ابزارهای گرافیکی آشنا می شویم که به ما کمک می کند تا مدیریت کار cron را بسیار آسان کنیم.

    ۲. تولید کنندهای Crontab

    همانطور که می بینید، زمان بندی کارهای cron بسیار ساده است. همچنین چند تولید کننده crontab مبتنی بر وب در دسترس هستند تا این کار را آسان تر کنند. شما نیازی به حفظ و/یا یادگیری نحو نوشتن crontab ندارید.

    دو وب سایت زیر به شما کمک می کند تا به راحتی یک عبارت crontab را بر اساس ورودی های خود ایجاد کنید. هنگامی که خط را طبق نیاز خود ایجاد کردید، کافی است آن را در فایل crontab خود کپی/پیست کنید .

    ۲.۱. Crontab.guru

    Crontab.guru وب سایت اختصاصی برای یادگیری نمونه کارهای cron است. فقط ورودی های خود را در سایت وارد کنید و بلافاصله در عرض چند دقیقه یک دستور crontab ایجاد می کند.

    این سایت همچنین مثال ها و نکات بسیاری از کارهای cron را ارائه می دهد . آنها را بررسی کنید و یاد بگیرید که چگونه یک cronjob را برنامه ریزی کنید.

    ۲.۲. Crontab Generator

    Crontab Generator وب سایت دیگری است که به ما کمک می کند تا به سرعت و به راحتی عبارات crontab را تولید کنیم. فرمی که چندین ورودی دارد در این سایت وجود دازد. کاربر باید تمام فیلدهای مورد نیاز در فرم را تکمیل کند.

    در نهایت دکمه “Generate Crontab Line” را در پایین فشار دهید.

    در صفحه بعدی، کاربر عبارت crontab خود را می بیند. فقط آن را در فایل crontab کپی/پیست کنید. به همین سادگی است.

    ۳. رابط های گرافیکی Crontab

    چند ابزار گرافیکی Crontab برای ایجاد آسان کارهای cron وجود دارد. با استفاده از این ابزارها بدون نیاز به ویرایش فایل Crontab از طریق خط فرمان می توانید مدیریت کارهای cron بسیار آسان تر انجام دهید!

    ۳.۱. رابط کاربری Crontab

    Crontab UI یک ابزار مبتنی بر وب برای مدیریت آسان و ایمن وظایف cron در لینوکس است. برای ایجاد، حذف و مدیریت کارهای cron نیازی به ویرایش دستی فایل crontab ندارید. همه چیز را می توان از طریق یک مرورگر وب با چند کلیک ماوس انجام داد.

    Crontab UI به شما این امکان را می دهد که به راحتی کارهای cron را ایجاد، ویرایش، متوقف، حذف، پشتیبان گیری کنید و همچنین بدون دردسر زیاد، کارها را بر روی ماشین های دیگر import، export و deploy کنید.

    در صورت تمایل به مطالعه بیشتر در مورد آن، به لینک زیر نگاهی بیندازید.

    • نحوه مدیریت آسان و ایمن Cron Jobs با استفاده از Crontab UI در لینوکس

    ۳.۲. Zeit

    با استفاده از Zeit، می‌توانیم کارهای cron را از طریق رابط گرافیکی ساده اضافه، ویرایش و حذف کنیم. برای جزئیات بیشتر به لینک زیر مراجعه کنید:

    • Zeit – یک رابط کاربری گرافیکی برای Crontab برای زمان‌بندی کارها در لینوکس

    ۴. نتیجه گیری

    در این آموزش آموختیم که Cron، کار cron چیست و استفاده اولیه از cron job در لینوکس را با دستورات نمونه مورد بحث قرار دادیم.

    ما همچنین در مورد چند مولد crontab مبتنی بر وب و رابط های گرافیکی crontab که برای ایجاد و مدیریت آسان کارهای cron در لینوکس استفاده می‌شوند، بحث کردیم.

    مهدی منصوری

    من مهدی منصوری و کارشناس حوزه نرم افزار و امنیت اطلاعات هستم. کارشناسی ارشد خودم را در رشته امنیت اطلاعات از دانشگاه مالک اشتر تهران گرفتم. هم اکنون در زمینه DevOPS مشغول هستم. و در زمان های ممکن در این سایت و چند سایت دیگه مطلب می گذارم

    درباره نویسنده

    مهدی منصوری

    من مهدی منصوری و کارشناس حوزه نرم افزار و امنیت اطلاعات هستم. کارشناسی ارشد خودم را در رشته امنیت اطلاعات از دانشگاه مالک اشتر تهران گرفتم.
    هم اکنون در زمینه DevOPS مشغول هستم. و در زمان های ممکن در این سایت و چند سایت دیگه مطلب می گذارم

    افزودن نظر

    برای ارسال نظرات خود اینجا را کلیک کنید