11 مثال Cron Scheduling Task در لینوکس
25 مارس 2022
خواندن 1 دقیقه
نیکو رنجبر

11 مثال Cron Scheduling Task در لینوکس

در این مقاله قصد داریم ببینیم که چگونه می توانیم با استفاده از دستور Crontab، وظایف را در پس زمینه به طور خودکار در فواصل زمانی معین زمان بندی و اجرا کنیم. با ما تا آخر آموزش 11 مثال Cron Scheduling Task در لینوکس همراه باشید.

بررسی 11 مثال Cron Scheduling Task در لینوکس

پرداختن به یک کار مکرر به صورت دستی یک کار دلهره آور برای مدیران سیستم است و چنین کارهایی می توانند به طور خودکار در پس زمینه بدون دخالت انسان با استفاده از cron daemon در لینوکس یا سیستم عامل یونیکس برنامه ریزی و اجرا شوند. به عنوان مثال، می‌توانید پشتیبان‌گیری سرور مجازی لینوکس، برنامه‌ریزی به‌روزرسانی‌ ها و همگام‌ سازی فایل‌ ها و بسیاری موارد دیگر را با استفاده از Cron daemon که برای اجرای وظایف برنامه‌ریزی‌ شده از خط فرمان یا استفاده از ابزارهای آنلاین برای ایجاد کارهای cron استفاده می‌شود را به حالت خودکار درآوریم.

Cron هر دقیقه بیدار می شود و وظایف برنامه را به صورت قابل شمارش بررسی می کند – Crontab یا CRON TABLe جدولی است که می توانیم چنین کارهای تکراری را زمان بندی کنیم.

نکات: هر کاربر می تواند crontab خود را برای ایجاد، تغییر و حذف وظایف داشته باشد. به‌ طور پیش‌فرض cron برای کاربران فعال است، با این حال، می‌توانیم با افزودن یک ورودی در فایل etc/cron.deny/، کاربران را محدود کنیم.

فایل Crontab از دستور در هر خط تشکیل شده و دارای شش فیلد، و جدا از فاصله یا تب است. پنج فیلد ابتدایی نشان دهنده زمان اجرای وظایف و آخرین فیلد مربوط به فرمان است. این فیلدها عبارتند از:

  • Minute (نگهداشتن مقادیر بین 0-59)
  • Hour (نگهداشتن مقادیر بین 0-23)
  • Day of Month (نگهداشتن مقادیر را بین 1 تا 31)
  • The month of the year (نگهداشتن مقادیر بین 1 تا 12 یا ژانویه تا دسامبر، امکان استفاده از سه حرف اول نام هر ماه یعنی ژانویه یا ژوئن)
  • Day of week (نگهداشتن مقادیر را بین 0-6 یا Sun-Sat، امکان استفاده از سه حرف اول نام هر روز یعنی Sun یا Wed)
  • Command – /path/to/command یا اسکریپتی که می خواهید برنامه ریزی کنید.

یادگیری 11 مثال Cron Scheduling Task در لینوکس

1. فهرست ورودی های Crontab

اکنون کار را با دستور crontab با گزینه l- برای کاربر فعلی، فهرست یا مدیریت کنید.

crontab -l
00 10 * * * /bin/ls >/ls.txt

2. ویرایش ورودی های Crontab

برای ویرایش ورودی crontab از گزینه e- مطابق شکل زیر استفاده کنید. در مثال زیر، کارهای برنامه ریزی در ویرایشگر VI باز می شود. تغییرات لازم را انجام دهید و از فشار دادن کلیدهای :wq که تنظیمات را به طور خودکار ذخیره می کنند، خودداری کنید.

crontab -e

3. List Scheduled Cron Jobs

برای فهرست کردن کارهای برنامه ریزی شده یک کاربر خاص به نام one با استفاده از گزینه های u (User)- و l (List)- استفاده می کنیم.

crontab -u one -l
no crontab for one

توجه: فقط کاربر root دارای امتیاز کامل برای دیدن ورودی های crontab سایر کاربران است. کاربران عادی نمی توانند دیگران را مشاهده کنند.

4. حذف ورودی Crontab

احتیاط: Crontab با پارامتر r- کارهای برنامه ریزی شده کامل را بدون تایید از crontab حذف می کند. قبل از حذف crontab کاربر از گزینه i- استفاده کنید.

crontab -r

5. درخواست قبل از حذف Crontab

گزینه crontab با i- قبل از حذف crontab کاربر از شما درخواست می‌کند تا تأیید کنید.

crontab -i -r
crontab: really delete root's crontab?

6. کاراکترهای ویژه مجاز (*, -, /, ?, #)

  • Asterisk (*) – مطابقت همه مقادیر موجود در فیلد یا هر مقدار ممکن
  • Hyphen (-) – برای تعریف محدوده
  • Slash (/) – فیلد اول /10 به معنی هر ده دقیقه یا افزایش برد
  • Comma (,) – برای جدا کردن آیتم ها

7. برنامه زمانبندی System-Wide Cron

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

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

8. برنامه ریزی یک کار برای زمان خاص

کارهای زیر هر روز در ساعت 12:30 صبح، فایل ها و دایرکتوری خالی را از tmp/ حذف می کنند. برای اجرای دستور crontab باید نام کاربری را ذکر کنید. در مثال زیر کاربر root در حال انجام یک کار cron است.

crontab -e
30 0 * * *   root   find /tmp -type f -empty -delete

9. استرینگ های ویژه برای Common Schedule

[email protected]: دستور زمانی اجرا می شود که سیستم مجددا راه اندازی شود.

[email protected]: دستور یک بار در روز و یا [email protected] نیمه شب را اندازی می شود.

[email protected]: یکبار در هفته راه اندازی می شود.

[email protected]: سالانه راه اندازی می شود. می توانیم برای این استرینگ از کلمه کلیدی [email protected] هم استفاده کنیم.

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

10. دستورات چندگانه با دو علامت (&&)

در مثال زیر command1 و command2 روزانه اجرا می شوند.

 crontab -e
@daily <command1> && <command2>

11. غیر فعال کردن اعلان ایمیل

به طور پیش‌فرض، cron نامه‌ای را به حساب کاربری در حال اجرای cronjob ارسال می‌کند. اگر می‌خواهید آن را غیرفعال کنید، cron job خود را مشابه مثال زیر اضافه کنید. استفاده از گزینه >/dev/null 2>&1 در انتهای فایل، تمام خروجی نتایج cron را در زیر /dev/null هدایت می کند.

[[email protected] ~]# crontab -e
* * * * * >/dev/null 2>&1

نتیجه گیری

در این آموزش 11 مثال Cron Scheduling Task در لینوکس را بررسی کردیم. اتوماسیون وظایف ممکن است به شما کمک کند تا وظایف خود را به روش های بهتر، بدون خطا و کارآمد انجام دهید. امیدوارم این مقاله برایتان مفید بوده باشد. نظرات خود را از طریق فرم زیر با ما به اشتراک بگذارید.

نویسنده مقاله
نویسنده / @نیکو رنجبر
مقالات مرتبط
دیدگاه بگذارید