آیا می دانستید که پرداختن به یک کار مکرر به صورت دستی یک کار دلهره آور برای مدیران سیستم است و چنین کارهایی می توانند به طور خودکار در پس زمینه بدون دخالت انسان با استفاده از Cron Daemon در لینوکس یا سیستم عامل یونیکس برنامه ریزی و اجرا شوند؟ به عنوان مثال میتوانید پشتیبانگیری سرور مجازی لینوکس، برنامهریزی به روز رسانی ها و همگام سازی فایل ها و … را با استفاده از Cron Daemon که برای اجرای وظایف برنامهریزی شده از خط فرمان یا استفاده از ابزارهای آنلاین برای ایجاد کارهای Cron استفاده میشود به حالت خودکار درآوریم! برای آشنایی با این روش که دلهره بسیاری از وظایف را از دوش شما بر می دارد با آذرسیس همراه شوید.
فهرست مطالب
مفهوم دستور Crontab!
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 در لینوکس
در این مرحله از مقاله به بررسی و یادگیری 11 مثال مهم از Cron Scheduling Task در لینوکس خواهیم پرداخت که از مطالعه و کارایی آن ها قطعاً لذت خواهید برد:
1. فهرست ورودی های Crontab
اولین نمونه از مثال های Cron Scheduling Task در لینوکس، Crontab است که می توانید با استفاده از دستور Crontab با گزینه l- برای کاربر فعلی، فهرست یا مدیریت کنید:
crontab -l 00 10 * * * /bin/ls >/ls.txt
2. ویرایش ورودی های Crontab
برای ویرایش ورودی Crontab از گزینه e- مطابق شکل زیر استفاده کنید، در مثال زیر از این نمونه دستورات Cron Scheduling Task در لینوکس، کار های برنامه ریزی در ویرایشگر 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 برای Cron Scheduling Task در لینوکس
Crontab با پارامتر r- کارهای برنامه ریزی شده کامل را بدون تایید از Crontab حذف می کند. قبل از حذف Crontab کاربر از گزینه i- استفاده کنید:
crontab -r
5. درخواست قبل از حذف Crontab
مورد پنجم که در لیست Cron Scheduling Task در لینوکس، باید قرار می گرفت این گزینه برای درخواست قبل از حذف است. گزینه Crontab با i- قبل از حذف Crontab کاربر از شما درخواست میکند تا تأیید کنید:
crontab -i -r crontab: really delete root's crontab?
6. کاراکتر های ویژه مجاز (*, -, /, ?, #) در Cron Scheduling Task در لینوکس
- 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. برنامه ریزی برای زمان خاص Cron Scheduling Task در لینوکس
کار های زیر هر روز در ساعت 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. دستورات چندگانه با دو علامت (&&)
در مثال زیر Command 1 و Command 2 روزانه اجرا می شوند:
crontab -e @daily <command1> && <command2>
11. غیر فعال کردن اعلان ایمیل Cron Scheduling Task در لینوکس
آخرین نمونه از مثال های Cron Scheduling Task در لینوکس! به طور پیشفرض Cron نامه ای را به حساب کاربری در حال اجرا Cron Job ارسال میکند اما اگر میخواهید آن را غیر فعال کنید، Cron Job خود را مشابه مثال زیر اضافه کرده و استفاده از گزینه >/dev/null 2>&1 در انتها فایل، تمام خروجی نتایج Cron را در زیر /Dev/null هدایت می کند:
[root@azarsys ~]# crontab -e * * * * * >/dev/null 2>&1
سخن آخر
با توجه به آن چه که در این مقاله مطالعه نمودید، 11 مثال Cron Scheduling Task در لینوکس را بررسی کردیم. این اتوماسیون وظایف ممکن است به شما کمک کند تا وظایف خود را به روش های بهتر، بدون خطا و کارآمد انجام دهید. برای برنامه ریزی های بیشتر در جهت پیشبرد اهداف حرفه ای خود در زمینه های آنلاین می توانید در کنار استفاده از آموزش های پیشرفته آذرسیس، یک مشاوره رایگان را مهمان ما باشید و میزبانی پرقدرت همراه با پشتیبانی دائمی در اختیار داشته باشید.