نحوه خودکارسازی وظایف منظم با Cron در اوبونتو 20.04
به منظور آشنایی با نحوه اجرای وظایف و اسکریپت ها به طور خودکار در فواصل زمانی مشخص این مقاله را تا انتها مطالعه نمایید
Сron به شما اجازه می دهد تا وظایف و اسکریپت ها را به طور خودکار در فواصل زمانی مشخص اجرا کنید. بنابراین، یک ابزار مدیریت سرور بسیار محبوب است. Cron در تمام توزیع های لینوکس وجود دارد. در این آموزش، ما با استفاده از Cron در اوبونتو 20.04 وظایف معمولی را تنظیم می کنیم و از طریق نحو آن را بررسی می کنیم.
نصب cron
به احتمال زیاد cron روی سیستم شما نصب شده است. اما اگر اینطور نیست، می توانید با دستور زیر آن را نصب کنید:
apt install cron
آن را به راه اندازی خودکار اضافه کنید و اجرا کنید:
systemctl enable --now cron
پیکربندی ساده cron
ساده ترین راه برای ایجاد یک کار معمولی با استفاده از cron این است که اسکریپت را در یکی از پوشه های زیر قرار دهید:
- /etc/cron.hourly
- /etc/cron.daily
- /etc/cron.weekly
- /etc/cron.monthly
فرکانس اجرا در نام پوشه نشان داده شده است. تنظیم حق اجرا و حذف نقاط از نام اسکریپت مهم است.
گزارشهای cron در اینجا قرار دارند: /var/log/syslog. در اینجا لاگ سایر برنامه ها آمده است. بنابراین برای مشاهده cron log ها از دستور زیر استفاده کنید:
grep CRON /var/log/syslog
پیکربندی پیشرفته cron
برای تنظیم cron jobs، وارد کنید:
crontab -e
در اولین راه اندازی، از شما خواسته می شود ویرایشگر متن دلخواه خود را انتخاب کنید. انتخاب خود را مشخص کنید و توضیحی در مورد تنظیمات cron از توسعه دهندگان خواهید دید و پس از آن می توانید وظایف خود را وارد کنید.
فرمت ضبط – مقادیر زیر از طریق یک فاصله وارد می شوند:
- دقیقه – از 0 تا 59
- ساعت – از 0 تا 23
- روز ماه – از 1 تا 31
- ماه – از 1 تا 12 یا ژانویه، فوریه، مارس، آوریل و غیره.
- هفته – از 0 تا 6 (یکشنبه = 0 یا 7) یا خورشید، دوشنبه، سه شنبه، چهارشنبه، پنج شنبه، جمعه، شنبه
- دستورات
برای مثال:
10 20 * * * /var/script
برای این ورودی، cron اسکریپت را هر روز در ساعت 20:10 اجرا می کند.
گزینه های اضافی پیکربندی cron
خط فاصله (-) به شما امکان می دهد محدوده ای از مقادیر را مشخص کنید. به عنوان مثال، اجرا در روزهای هفته:
10 20 * * 1-5
کاما (،) به شما امکان می دهد چندین مقدار را مشخص کنید. به عنوان مثال، اجرا در ساعت 10 و 20 را می توان به صورت زیر نوشت:
10 10,20 * * *
اسلش (/) به شما امکان می دهد یک مرحله مقدار را مشخص کنید. برای مثال هر 10 دقیقه یکبار بدوید:
*/10 * * * *
علاوه بر این، عبارات خاصی برای ایجاد ساده وظایف وجود دارد: @reboot، @yearly یا @annually، @monthly، @weekly، @daily، @hourly، @midnight. در صورت اعمال، فرکانس با نام آنها مطابقت دارد. مثلا:
@midnight /var/script
برای مشاهده تمام کارهای cron پیکربندی شده، از دستور استفاده کنید:
crontab -l
مدیریت وظایف cron سایر کاربران
در صورت داشتن دسترسی روت یا پس از ورود به حساب کاربری root، میتوانید کارهای cron ایجاد شده توسط سایر کاربران را مشاهده کنید:
crontab -u username -l
و حتی آنها را ویرایش کنید:
crontab -u username -e
مدیریت حق ایجاد وظایف در کرون
در ابتدا، هر کاربر مجوز ایجاد cron job را دارد.
برای ممنوع کردن این عمل برای کاربران خاص، ورود آنها را به فایل /etc/cron.deny اضافه کنید.
برای جلوگیری از ایجاد وظایف cron برای همه به جز برخی از کاربران، آن کاربران را به فایل /etc/cron.allow اضافه کنید.