نحوه ویرایش فایل لینوکس Crontab برای برنامه ریزی مشاغل

معرفی

یک لینوکس در لینوکس به نام cron وجود دارد که برای اجرای فرایندها در فواصل منظم استفاده می شود.

روش انجام این کار این است که پوشه های خاصی را در سیستم خود برای اسکریپت هایی که باید اجرا شوند را بررسی کنید. به عنوان مثال یک پوشه به نام /etc/cron.hourly، /etc/cron.daily، /etc/cron.weekly و /etc/cron.monthly وجود دارد. همچنین یک فایل به نام / etc / crontab وجود دارد.

به طور پیش فرض شما می توانید به سادگی اسکریپت ها را در پوشه های مربوطه قرار دهید تا آنها را به صورت منظم اجرا کنید.

برای مثال یک پنجره ترمینال را (با فشار دادن CTRL، ALT و T) باز کنید و دستور زیر را اجرا کنید:

ls / etc / cron *

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

مشکل این پوشه ها این است که آنها کمی مبهم هستند. به عنوان مثال روزانه به این معنی است که اسکریپت یکبار در روز اجرا می شود، اما شما کنترل زمان را برای اسکریپت در آن روز ندارید.

این جایی است که فایل crontab وارد آن می شود.

با ویرایش فایل crontab شما می توانید یک اسکریپت یا برنامه برای اجرا در تاریخ دقیق و زمان که شما می خواهید آن را اجرا کنید. به عنوان مثال شما می توانید فایل های خود را هر شب در ساعت 6 بعد از ظهر تهیه کنید.

مجوزها

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

اگر فایل /etc/cron.allow وجود داشته باشد، کاربر می خواهد که فایل crontab را ویرایش کند باید در آن فایل باشد. اگر فایل cron.allow وجود ندارد اما یک فایل /etc/cron.deny وجود دارد پس کاربر نباید در آن فایل وجود داشته باشد.

اگر هر دو فایل وجود داشته باشند، /etc/cron.allow فایل /etc/cron.deny را رفع می کند.

اگر هیچ پرونده وجود نداشته باشد، به تنظیمات سیستم بستگی دارد که آیا کاربر میتواند crontab را ویرایش کند.

کاربر ریشه همیشه می تواند فایل crontab را ویرایش کند. شما می توانید از دستور su استفاده کنید تا سوئیچ به کاربر ریشه یا دستور sudo برای اجرای دستور crontab.

ویرایش فایل Crontab

هر کاربر دارای مجوز می تواند فایل crontab خود را ایجاد کند. دستور cron اساسا به دنبال وجود چند فایل crontab می باشد و همه آنها را اجرا می کند.

برای بررسی اینکه آیا یک فایل crontab دارید، دستور زیر را اجرا کنید:

crontab -l

اگر شما یک فایل crontab ندارید، پیام "بدون crontab برای " ظاهر خواهد شد در غیر این صورت فایل crontab شما نمایش داده خواهد شد (این عملکرد از سیستم به سیستم متفاوت است، گاهی اوقات هیچ چیزی را نشان نمی دهد و دیگر بار نمایش داده می شود " این فایل را ویرایش نکن ")

برای ایجاد یا ویرایش یک فایل crontab دستور زیر را اجرا کنید:

crontab-e

به طور پیش فرض اگر ویرایشگر پیش فرض انتخاب نشده باشد، از شما خواسته خواهد شد که یک ویرایشگر پیش فرض را برای استفاده انتخاب کنید. شخصا دوست دارم از نانو استفاده کنم، زیرا آن را نسبتا مستقیم به جلو استفاده می کند و از ترمینال اجرا می شود.

فایل باز می شود اطلاعات زیادی دارد، اما قسمت اصلی به عنوان مثال قبل از پایان بخش نظرات است (نظرات توسط خطوط شروع با # مشخص می شوند).

# mh dom mon dow فرمان

0 5 * * 1 tar -zcf /var/backups/home.tgz/ خانه /

6 قطعه اطلاعات برای هر سطر فایل crontab وجود دارد:

برای هر آیتم (به جز فرمان) شما می توانید یک شخصیت رشته ای را مشخص کنید. به مثال زیر crontab نگاه کنید:

30 18 * * * tar -zcf /var/backups/home.tgz / خانه /

فرمان فوق می گوید 30 دقیقه، 18 ساعت و هر روز، ماه و روز هفته یک فرمان برای پوشه پوشه / var / backups پوشه خانه و پوشه را در پوشه home / etc قرار می دهد.

برای دریافت یک فرمان برای اجرای هر دقیقه 30 دقیقه ای، می توانم دستور زیر را اجرا کنم:

30 * * * * فرمان

برای دریافت یک فرمان برای اجرای هر دقیقه در ساعت 6 بعدازظهر می توانم دستور زیر را اجرا کنم:

* 18 * * * فرمان

بنابراین شما باید در مورد تنظیم دستورات crontab خود مراقب باشید.

برای مثال:

* * * 1 * فرمان

دستور بالا هر دقیقه هر ساعت از هر روز هر هفته در ژانویه اجرا می شود. من شک دارم این چیزی است که شما می خواهید.

برای اجرای فرمان در ساعت 5 صبح روز اول ژانویه شما به فرمان زیر به فایل crontab بروید:

0 5 1 1 * فرمان

چگونه یک پرونده Crontab را حذف کنیم

اغلب اوقات شما نمی خواهید فایل crontab را حذف کنید، اما ممکن است بخواهید برخی از ردیف ها را از فایل crontab حذف کنید.

با این حال اگر میخواهید فایل crontab خود را حذف کنید، دستور زیر را اجرا کنید:

crontab -r

راه امن برای انجام این کار این است که دستور زیر را اجرا کنید:

crontab -i

این سوال می پرسد "آیا مطمئن هستید؟" قبل از حذف فایل crontab.