از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نحو Crontab چیست: درک Crontab روی لینوکس + مثال های مفید
سرفصلهای مطلب
اتوماسیون یکی از جنبه های کلیدی هر سیستمی است، چه یک سرور خصوصی فیزیکی یا مجازی (VPS). اگر اتوماسیون به درستی تنظیم شود، می تواند صدها ساعت گرانبها را برای کاربر ذخیره کند و گردش کار کلی را بسیار کارآمدتر کند. یکی از ابزارهای کلیدی برای زمان بندی وظایف است کرون.
در این آموزش، نحو crontab را پوشش میدهیم، تفاوتهای بین cron job، cron و crontab را مرور میکنیم، و موارد استفاده از cron jobهای مفید را برای یک سیستم عامل مبتنی بر لینوکس ارائه میکنیم.
Crontab و Cron Job چیست؟
در مورد کرون جابز، سه عبارت را می توان برجسته کرد:
Cron daemon (crond) یا به سادگی cron – یک فایل اجرایی که به کاربران اجازه می دهد وظایف را انجام دهند و آنها را به طور خودکار در یک زمان خاص اجرا کنند.
کار کرون – هر کاری که کاربر با استفاده از cron برنامه ریزی می کند به عنوان کار cron شناخته می شود.
Crontab Syntax چیست؟
میز کرون یا کرونتاب فایلی است که شامل تمام برنامههای زمانبندی کارهای cron است که کاربر میخواهد به طور منظم اجرا شود. دستورات در هر خط یک عدد نوشته می شوند و به cron daemon دستور می دهد تا یک وظیفه را در یک زمان خاص اجرا کند.
فرمت و مقادیر Crontab
برای اینکه cron daemon دستورالعمل ها را به درستی درک کند، باید از نحو صحیح crontab استفاده شود. نحو Crontab از پنج فیلد تشکیل شده است. هر کدام را می توان با هر یک از مقادیری که در جدول زیر نشان داده شده است پر کرد:
جدای از مقادیر احتمالی crontab، برخی از کاراکترهای خاص باید حفظ شوند:
سمبل | معنی | مثال |
* (ستاره) | تمام مقادیر ممکن را در یک فیلد انتخاب کنید | محل * در ساعت فیلد برای اجرای کار هر ساعت |
، (کاما) | برای جدا کردن چندین مقدار از کاما استفاده می شود | 0،3،5 در روز هفته فیلد کار را اجرا می کند روی یکشنبه و چهارشنبه |
– (خط ربط) | برای تنظیم محدوده ای از مقادیر استفاده می شود | 10-15 در روز ماه فیلد کار را از روز دهم تا پانزدهم ماه اجرا می کند |
/ (جداکننده) | برای تقسیم مقادیر از جداکننده استفاده می شود | */10 در ساعت فیلد کار را هر 10 ساعت اجرا می کند |
L | استفاده شده در روز ماه یا روز هفته زمینه های | 1 لیتر در روز هفته فیلد وظیفه را اجرا خواهد کرد روی آخرین دوشنبه یک ماه معین |
دبلیو | W برای تعیین نزدیکترین روز هفته استفاده می شود | 0 وات در روز ماه فیلد کار را اجرا می کند روی نزدیکترین یکشنبه یک ماه معین |
# (هش) | برای تعیین استفاده می شود روز هفته | 2#3 در روز ماه فیلد کار را اجرا می کند روی سومین سه شنبه ماه |
? (علامت سوال) | استفاده شده در روز ماه و روز هفته زمینه های | ? در روز ماه فیلد به صورت خوانده می شود ارزش خاصی ندارد |
مهم! توجه داشته باشید که هنگام ایجاد یک کار cron باید تمام فیلدها پر شوند. اگر نمی خواهید فیلدی را مشخص کنید، آن را با عبارت پر کنید * (ستاره) سمبل.
دستورات Crontab
فقط چند دستور cron در استفاده می شود command-line، بنابراین ایجاد، حذف و مدیریت ورودی های cron را آسان می کند:
- crontab -e – برای ویرایش کرونتاب های سیستم استفاده می شود. این دستور اگر هنوز ساخته نشده باشد یک کرونتاب جدید ایجاد می کند.
- crontab -l – برای مشاهده ورودی های crontab (کارهای cron) و نمایش محتوای فایل crontab سیستم استفاده می شود.
- crontab -r – فایل crontab فعلی را حذف می کند.
- crontab -i – قبل از حذف کرونتاب کاربر یک اعلان نشان می دهد. استفاده از آن همراه با -r پرچم، ساختن پرچم -ri.
روش استفاده از Crontab: نمونه هایی از نحو Crontab
ابتدا از دستور crontab برای ایجاد اولین ورودی crontab خود استفاده کنید:
crontab -e
از شما خواسته می شود یک ویرایشگر انتخاب کنید. توصیه می کنیم استفاده کنید نانو، اولین گزینه در مثال ما:
پس از آن، به فایل crontab هدایت خواهید شد. برای افزودن ورودی های جدید، به سادگی یک خط جدید را انتخاب کنید و با cronjob ادامه دهید.
مهم! به خاطر داشته باشید که crontab از زمان و تاریخ فعلی سیستم استفاده می کند، به این معنی که منطقه زمانی با سیستم ریشه مشترک است.
یک کار را برای یک زمان مشخص برنامه ریزی کنید
یکی از سادهترین راهها برای آزمایش cron، برنامهریزی یک کار برای یک زمان خاص است. برای مثال، cron job زیر ما را اجرا خواهد کرد اسکریپت .sh در زمان مشخص شده، یعنی 15 آگوست، در 03:30.
30 08 10 06 * cat /helloworld.sh
مشاهده ورودی های Crontab
از آنجایی که تمام کارهای cron در یک فایل crontab ذخیره می شوند، می توانید مواردی را که قبلاً در حال اجرا هستند مشاهده کنید. برای این کار از دستور زیر برای نمایش محتویات فایل های crontab خود استفاده کنید:
crontab -l
ویرایش ورودی های Crontab
برای تغییر ورودی های crontab موجود، از این دستور استفاده کنید:
crontab -e
برای هر دقیقه یک کار را برنامه ریزی کنید
برنامه ریزی وظایف برای اجرا در هر دقیقه کار آسانی نیست. در مثال زیر آموزش خواهیم داد گربه اجرای دستور برای اجرای دوره ای:
* * * * * cat /home/helloworld.sh
هر روز یک کار پس زمینه را برنامه ریزی کنید
برای برنامه ریزی یک کار پس زمینه برای اجرا هر روز، می توانید از @روزانه دستور cron:
@daily cat /home/helloworld.sh
توجه داشته باشید که اسکریپت در آن اجرا خواهد شد ساعت 12 صبح هر روز.
یک کار را برای بازه زمانی مشخصی برنامه ریزی کنید
امکان برنامه ریزی یک کار برای بازه زمانی مشخص وجود دارد. به عنوان مثال، هر روز هفته، از جمله آخر هفته، از ساعت 8 صبح به ساعت 5 بعدازظهر. نتیجه نهایی به این صورت خواهد بود:
00 08-17 * * * cat /home/helloworld.sh
در اینجا یک مثال دیگر از همان cron، اما فقط روی آخر هفته ها:
00 08-17 * * 6-0 cat /home/helloworld.sh
در ابتدای هر ماه یک Cron Job را برنامه ریزی کنید
به منظور برنامه ریزی یک کار در ابتدای هر ماه، می توانید از آن استفاده کنید @ماهانه اپراتور:
@monthly cat /home/helloworld.sh
به خاطر داشته باشید که این کار را در انجام می دهد ساعت 12 صبح روی روز اول هر ماه به طور مشابه، یک وجود دارد @سالانه اپراتور که کار را اجرا خواهد کرد روی را اولین روز از هر سال
یک کار را برای بیش از یک بار برنامه ریزی کنید
کاربران می توانند یک کار cron را برنامه ریزی کنند تا بیش از یک بار اجرا شود، مثلاً پنج بار در روز. در مثال زیر، یک کار برای اجرا تنظیم می کنیم ساعت 12 شب، ساعت 3 بعدازظهر، ساعت 5 بعدازظهر، ساعت 7 بعد از ظهر و ساعت 9 شب.
0 12,15,17,19,21 * * * cat /home/helloworld.sh
پس از هر بار راه اندازی مجدد، یک دستور لینوکس را اجرا کنید
مشابه به @روزانه، @ماهانه، و @سالانه اپراتورها، bash همچنین با a می آید راه اندازی مجدد @ فرمان کاربران می توانند از آن برای برنامه ریزی کاری استفاده کنند که هر بار که سیستم راه اندازی مجدد یا راه اندازی مجدد می شود اجرا می شود:
@reboot cat /home/helloworld.sh
فایل Crontab در کجا قرار دارد؟
بسته به روی سیستم عامل سیستم، crontab در سه مکان مختلف قرار خواهد گرفت:
- سیستم عامل مک – /var/at/tabs
- سیستم های مبتنی بر دبیان – /var/spool/cron/crontabs/
- سیستم های مبتنی بر کلاه قرمزی – /var/spool/cron
اقدامات اضافی Crontab
جدا از عملکرد فعلی، crontab همچنین قادر به انجام اقدامات اضافی مانند ایجاد گزارش اجرای cron یا غیرفعال کردن اعلانهای ایمیل است. برای اطلاعات بیشتر بخش های زیر را بررسی کنید.
یک فایل گزارش ایجاد کنید
ساده ترین راه برای ثبت تمام خروجی ها از cron jobها استفاده از منطق زیر است:
* * * * * cat /home/helloworld.sh >> /var/log/logs.log 2>&1
این دستور تمام خروجی های cron jobs را در فایلی با نام ذخیره می کند logs.log
ایمیل را غیرفعال کنید
از آنجایی که cron پس از هر کار یک ایمیل برای کاربر ارسال می کند، غیرفعال کردن این عملکرد می تواند برای جلوگیری از هرزنامه مفید باشد. فقط این خط را در انتهای کار cron خود اضافه کنید:
>/dev/null 2>&1
محیط کرونتاب
Crontab به کاربران خود اجازه می دهد تا متغیرهای محیطی را تعریف کنند. این را می توان با موارد ذکر شده انجام داد crontab -e فرمان هنگام تعریف متغیرها، به لیست زیر مراجعه کنید:
- مسیر – مسیر پیش فرض برای crontab.
- پوسته – پوسته پیش فرض
- LOGNAME – صاحب کرونتاب اطلاعات از /etc/passwd فهرست راهنما.
- HOME – فهرست اصلی کاربر. اطلاعات از /etc/passwd فهرست راهنما.
نتیجه
کرون جابز یکی از بهترین راه ها برای انجام وظایف برنامه ریزی شده برای نمونه های مجازی و سیستم های فیزیکی لینوکس است. با cron jobs، کاربران می توانند وظایف مختلفی را برای سیستم خود برنامه ریزی کنند. به عنوان مثال، تعمیر و نگهداری سیستم را انجام دهید روی یک روز خاص یا حتی برنامه ریزی کنید که هر روز هفته اجرا شود.
در این آموزش، اکثر عملیات کرونتاب را پوشش داده ایم. ما همچنین چند مثال کاربردی ارائه کردهایم که میتوانید هنگام ایجاد کرونتاب از آنها استفاده کنید.
اگر سوال یا نظری دارید، در قسمت نظرات نظر بدهید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 01:36:07