Cron Job (کرون جاب) یکی از ابزارهای بسیار مفید در لینوکس و مورد علاقه برنامه نویسان است که اجازه اجرای اتوماتیک دستورات در یک بازه زمانی خاص، تاریخ مدنظر یا فواصل معین را برای استفاده از اهداف عمومی یا کارهای خاص شما فراهم میآورد. با توجه به توضیحات داده شده، شما میتوانید تصور کنید چطور مدیران سیستم از آن برای کارهای بک آپ گیری اتوماتیک، پاک کردن دایرکتوری، اطلاع رسانی ها و غیره استفاده میکنند.
کرون جاب در بک گراند اجرا میشود و دائما فایل /etc/crontab و /etc/cron.*/ و دایرکتوری /var/spool/cron/ را چک میکند. فایل های cron به صورت مستقیم ویرایش نمی شوند و هر کاربری یک cron خاص خودش را دارد.
با این حساب پس چطور cron job را اضافه یا ویرایش کنیم؟ با استفاده از دستورات crontab. با روش crontab شما میتوانید cron job ها را ایجاد، ویرایش، نصب و حذف کنید.
دستور ایجاد و ویرایش cron job ها یکسان و ساده هستند. حتی شما نیاز ندارید بعد از ایجاد فایل های جدید یا ویرایش آنهایی که موجود هستند کرون را restart کنید.
ساختار Cron
وقتی شما ساختار کرون جاب را بدانید، کار کردن با آن بسیار آسان است. در زیر 2 فرمت از کرون نمایش داده شده که شما باید آن را بدانید.
توضیح ساختار cron که در بالا ذکر شده است:
A => محدوده زمانی به دقیقه: (از 0 تا 59)
B => محدوده زمانی به ساعت: (از 0 تا 23)
C => محدوده زمانی به روز: (از 0 تا 31)
D => محدوده زمانی به ماه: (از 0 تا 12)
E => محدوده زمانی روزهای هفته: (از 0 تا 7). شروع از دوشنبه، و 0 یا 7 نشان دهنده یکشنبه است.
USERNAME => با username خودتان جایگزین کنید
/path/to/command => مسیر دستور یا اسکریپتی که شما میخواهید آن را زمان بندی کنید.
این همه موارد نیست. Cron از 3 عملگر استفاده می کند که به شما اجازه می دهد چندین مقدار را در یک فیلد مشخص کنید:
ستاره (*) => مشخص کنند همه مقادیر ممکن برای یک فیلد میباشد.
کاما (,) => مشخص کننده یک لیست از مقادیر میباشد.
دش (-) => مشخص کننده یک رنج از مقادیر میباشد.
اسلش (/) => مشخص کننده مقدار یک مرحله میباشد.
اکنون که شما ساختار و عملگرهای cron را می دانید، اجازه دهید برخی از مثال های cron را با هم بررسی کنیم.
مثال های Cron Job
در اولین مرحله برای اجرای دستورات cron راه اندازی crontab تان با دستور زیر میباشد.
اجرای اسکریپت /root/backup.sh در ساعت 3 صبح (AM) هر روز:
اجرای اسکرپیت script.sh در ساعت 4:30 بعد از ظهر (PM) در دومین روز هر ماه:
اجرای اسکرپیت /scripts/phpscript.php در ساعت 10 شب (PM) در طول هفته:
اجرای اسکرپیت perlscript.pl در ساعت 23 دقیقه بعد از نیمه شب، 2AM و 4AM، هر روز:
اجرای دستور لینوکسی مد نظر شما در ساعت 04:05 هر یکشنبه:
آپشن های Cron
لیست cron job ها:
نحوه حذف همه برنامه های زمان بندی شده در crontab:
نحوه حدف cron job برای یک کابر/یوزر خاص:
تنظیمات در Crontab
رشته ها (strings) چیزهای مورد علاقه برنامه نویسان هستند زیرا با حذف متون تکراری به منظور صرفه جویی در زمان بسیار مفید هستند. کرون دارای رشته های خاصی است که شما میتوانید از آنها برای ایجاد سریعتر دستورات استفاده کنید.
@hourly => اجرا شدن در هر ساعت، برای مثال: “0 * * * *“
@midnight => اجرا شدن در هر روز، برای مثال: “0 0 * * *“
@daily => مشابه midnight میباشد
@weekly => اجرا شدن در هر هفته، برای مثال: “0 0 * * 0“
@monthly => اجرا شدن در هر ماه، برای مثال: “0 0 1 * *“
@annually => اجرا شدن در هر سال، برای مثال: “0 0 1 1 *“
@yearly => مشابه annually میباشد
@reboot => اجرا شدن بعد از هر reboot (راه اندازی سیستم عامل)
برای مثال، نحوه بک آپ گیری روزانه از سیستم تان به صورت زیر میباشد:
در این اینجا، شما تمام نیازهایی که برای ایجاد و مدیریت کارهای سیستم با استفاده از cron میخواستید، را دارید. شما اکنون میتوانید چندین سرور را با استفاده از دستورات زمان بندی شده راه اندازی و نگهداری کنید.
همچنین توصیه میشود مطالعه کنید:
دستورات cron job و crontab در لینوکس به همراه 11 مثال برای زمان بندی کارها
اجرای اتوماتیک دستورات / اسکریپت ها در لینوکس موقع Reboot یا StartUP
نحوه نصب و راه اندازی Ansible برای اتوماتیک کردن تسک های مدیریتی IT
نصب و راه اندازی Puppet برای اتوماسیون کردن کارها در لینوکس
استفاده از شل اسکریپت برای اتوماتیک کردن Task ها در لینوکس
6 ابزار آنلاین برای ایجاد و تست cron job در لینوکس (به زودی)
میزان استفاده شما از کرون چه مقدار هست؟ و جزئیات دیگری هست که شما بخواهید در اینجا به اشتراک بگذارید؟
وقتی که درباره عملیات crontab به اندازه کافی بدانید شما میتوانید از ابزار ایجاد crontab برای به وجود آوردن خطوط فایل crontab به صورت رایگان استفاده کنید.
همچنین، شما میتوانید مقالات سایت اوبونتو را برای نحوه استفاده از cron در اینجا مطالعه کنید، که شامل منابعی مفید برای شما خواهد بود.
کرون جاب در بک گراند اجرا میشود و دائما فایل /etc/crontab و /etc/cron.*/ و دایرکتوری /var/spool/cron/ را چک میکند. فایل های cron به صورت مستقیم ویرایش نمی شوند و هر کاربری یک cron خاص خودش را دارد.
کد HTML:
/etc/crontab OR /etc/cron.*/ OR /var/spool/cron/
دستور ایجاد و ویرایش cron job ها یکسان و ساده هستند. حتی شما نیاز ندارید بعد از ایجاد فایل های جدید یا ویرایش آنهایی که موجود هستند کرون را restart کنید.
کد HTML:
$ crontab -e
ساختار Cron
وقتی شما ساختار کرون جاب را بدانید، کار کردن با آن بسیار آسان است. در زیر 2 فرمت از کرون نمایش داده شده که شما باید آن را بدانید.
کد HTML:
A B C D E USERNAME /path/to/command arg1 arg2 OR A B C D E USERNAME /root/backup.sh
A => محدوده زمانی به دقیقه: (از 0 تا 59)
B => محدوده زمانی به ساعت: (از 0 تا 23)
C => محدوده زمانی به روز: (از 0 تا 31)
D => محدوده زمانی به ماه: (از 0 تا 12)
E => محدوده زمانی روزهای هفته: (از 0 تا 7). شروع از دوشنبه، و 0 یا 7 نشان دهنده یکشنبه است.
USERNAME => با username خودتان جایگزین کنید
/path/to/command => مسیر دستور یا اسکریپتی که شما میخواهید آن را زمان بندی کنید.
این همه موارد نیست. Cron از 3 عملگر استفاده می کند که به شما اجازه می دهد چندین مقدار را در یک فیلد مشخص کنید:
ستاره (*) => مشخص کنند همه مقادیر ممکن برای یک فیلد میباشد.
کاما (,) => مشخص کننده یک لیست از مقادیر میباشد.
دش (-) => مشخص کننده یک رنج از مقادیر میباشد.
اسلش (/) => مشخص کننده مقدار یک مرحله میباشد.
اکنون که شما ساختار و عملگرهای cron را می دانید، اجازه دهید برخی از مثال های cron را با هم بررسی کنیم.
مثال های Cron Job
در اولین مرحله برای اجرای دستورات cron راه اندازی crontab تان با دستور زیر میباشد.
کد HTML:
# crontab -e
کد HTML:
0 3 * * * /root/backup.sh
کد HTML:
30 16 2 * * /path/to/script.sh
کد HTML:
0 22 * * 1-5 /scripts/phpscript.php
کد HTML:
23 0-23/2 * * * /path/to/perlscript.pl
کد HTML:
5 4 * * sun /path/to/linuxcommand
آپشن های Cron
لیست cron job ها:
کد HTML:
# crontab -l OR # crontab -u username -l
کد HTML:
# crontab -r
کد HTML:
# crontab -r -u username
تنظیمات در Crontab
رشته ها (strings) چیزهای مورد علاقه برنامه نویسان هستند زیرا با حذف متون تکراری به منظور صرفه جویی در زمان بسیار مفید هستند. کرون دارای رشته های خاصی است که شما میتوانید از آنها برای ایجاد سریعتر دستورات استفاده کنید.
@hourly => اجرا شدن در هر ساعت، برای مثال: “0 * * * *“
@midnight => اجرا شدن در هر روز، برای مثال: “0 0 * * *“
@daily => مشابه midnight میباشد
@weekly => اجرا شدن در هر هفته، برای مثال: “0 0 * * 0“
@monthly => اجرا شدن در هر ماه، برای مثال: “0 0 1 * *“
@annually => اجرا شدن در هر سال، برای مثال: “0 0 1 1 *“
@yearly => مشابه annually میباشد
@reboot => اجرا شدن بعد از هر reboot (راه اندازی سیستم عامل)
برای مثال، نحوه بک آپ گیری روزانه از سیستم تان به صورت زیر میباشد:
کد HTML:
@daily /path/to/backup/script.sh
در این اینجا، شما تمام نیازهایی که برای ایجاد و مدیریت کارهای سیستم با استفاده از cron میخواستید، را دارید. شما اکنون میتوانید چندین سرور را با استفاده از دستورات زمان بندی شده راه اندازی و نگهداری کنید.
همچنین توصیه میشود مطالعه کنید:
دستورات cron job و crontab در لینوکس به همراه 11 مثال برای زمان بندی کارها
اجرای اتوماتیک دستورات / اسکریپت ها در لینوکس موقع Reboot یا StartUP
نحوه نصب و راه اندازی Ansible برای اتوماتیک کردن تسک های مدیریتی IT
نصب و راه اندازی Puppet برای اتوماسیون کردن کارها در لینوکس
استفاده از شل اسکریپت برای اتوماتیک کردن Task ها در لینوکس
6 ابزار آنلاین برای ایجاد و تست cron job در لینوکس (به زودی)
میزان استفاده شما از کرون چه مقدار هست؟ و جزئیات دیگری هست که شما بخواهید در اینجا به اشتراک بگذارید؟
وقتی که درباره عملیات crontab به اندازه کافی بدانید شما میتوانید از ابزار ایجاد crontab برای به وجود آوردن خطوط فایل crontab به صورت رایگان استفاده کنید.
همچنین، شما میتوانید مقالات سایت اوبونتو را برای نحوه استفاده از cron در اینجا مطالعه کنید، که شامل منابعی مفید برای شما خواهد بود.