
در این مقاله قصد داریم ببینیم که چگونه می توانیم با استفاده از دستور 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
reboot@: دستور زمانی اجرا می شود که سیستم مجددا راه اندازی شود.
daily@: دستور یک بار در روز و یا midnight@ نیمه شب را اندازی می شود.
weekly@: یکبار در هفته راه اندازی می شود.
yearly@: سالانه راه اندازی می شود. می توانیم برای این استرینگ از کلمه کلیدی annually@ هم استفاده کنیم.
یعنی اگر می خواهید از آن استفاده کنید، باید پنج فیلد دستور cron را با کلمات کلیدی جایگزین کنید.
10. دستورات چندگانه با دو علامت (&&)
در مثال زیر command1 و command2 روزانه اجرا می شوند.
crontab -e @daily <command1> && <command2>
11. غیر فعال کردن اعلان ایمیل
به طور پیشفرض، cron نامهای را به حساب کاربری در حال اجرای cronjob ارسال میکند. اگر میخواهید آن را غیرفعال کنید، cron job خود را مشابه مثال زیر اضافه کنید. استفاده از گزینه >/dev/null 2>&1 در انتهای فایل، تمام خروجی نتایج cron را در زیر /dev/null هدایت می کند.
[root@azarsys ~]# crontab -e * * * * * >/dev/null 2>&1
نتیجه گیری
در این آموزش 11 مثال Cron Scheduling Task در لینوکس را بررسی کردیم. اتوماسیون وظایف ممکن است به شما کمک کند تا وظایف خود را به روش های بهتر، بدون خطا و کارآمد انجام دهید. امیدوارم این مقاله برایتان مفید بوده باشد. نظرات خود را از طریق فرم زیر با ما به اشتراک بگذارید.