اتوماسیون یکی از جنبه های کلیدی هر سیستمی است، چه یک سرور خصوصی فیزیکی یا مجازی (VPS). اگر اتوماسیون به درستی تنظیم شود، می تواند صدها ساعت گرانبها را برای کاربر ذخیره کند و گردش کار کلی را بسیار کارآمدتر کند. یکی از ابزارهای کلیدی برای زمان بندی وظایف است کرون.

در این آموزش، نحو crontab را پوشش می‌دهیم، تفاوت‌های بین cron job، cron و crontab را مرور می‌کنیم، و موارد استفاده از cron jobهای مفید را برای یک سیستم عامل مبتنی بر لینوکس ارائه می‌کنیم.

Crontab و Cron Job چیست؟

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

Cron daemon (crond) یا به سادگی cron – یک فایل اجرایی که به کاربران اجازه می دهد وظایف را انجام دهند و آنها را به طور خودکار در یک زمان خاص اجرا کنند.

کار کرون – هر کاری که کاربر با استفاده از cron برنامه ریزی می کند به عنوان کار cron شناخته می شود.

میز کرون یا کرونتاب فایلی است که شامل تمام برنامه‌های زمان‌بندی کارهای cron است که کاربر می‌خواهد به طور منظم اجرا شود. دستورات در هر خط یک عدد نوشته می شوند و به cron daemon دستور می دهد تا یک وظیفه را در یک زمان خاص اجرا کند.

فرمت و مقادیر Crontab

برای اینکه cron daemon دستورالعمل ها را به درستی درک کند، باید از نحو صحیح crontab استفاده شود. نحو Crontab از پنج فیلد تشکیل شده است. هر کدام را می توان با هر یک از مقادیری که در جدول زیر نشان داده شده است پر کرد:

جدای از مقادیر احتمالی crontab، برخی از کاراکترهای خاص باید حفظ شوند:

سمبل معنی مثال
* (ستاره) تمام مقادیر ممکن را در یک فیلد انتخاب کنید محل * در ساعت فیلد برای اجرای کار هر ساعت
، (کاما) برای جدا کردن چندین مقدار از کاما استفاده می شود 0،3،5 در روز هفته فیلد کار را اجرا می کند روی یکشنبه و چهارشنبه
– (خط ربط) برای تنظیم محدوده ای از مقادیر استفاده می شود 10-15 در روز ماه فیلد کار را از روز دهم تا پانزدهم ماه اجرا می کند
/ (جداکننده) برای تقسیم مقادیر از جداکننده استفاده می شود */10 در ساعت فیلد کار را هر 10 ساعت اجرا می کند
L استفاده شده در روز ماه یا روز هفته زمینه های 1 لیتر در روز هفته فیلد وظیفه را اجرا خواهد کرد روی آخرین دوشنبه یک ماه معین
دبلیو W برای تعیین نزدیکترین روز هفته استفاده می شود 0 وات در روز ماه فیلد کار را اجرا می کند روی نزدیکترین یکشنبه یک ماه معین
# (هش) برای تعیین استفاده می شود روز هفته 2#3 در روز ماه فیلد کار را اجرا می کند روی سومین سه شنبه ماه
? (علامت سوال) استفاده شده در روز ماه و روز هفته زمینه های ? در روز ماه فیلد به صورت خوانده می شود ارزش خاصی ندارد

مهم! توجه داشته باشید که هنگام ایجاد یک کار cron باید تمام فیلدها پر شوند. اگر نمی خواهید فیلدی را مشخص کنید، آن را با عبارت پر کنید * (ستاره) سمبل.

پیشنهاد می‌کنیم بخوانید:  بایگانی VPS

دستورات 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

از شما خواسته می شود یک ویرایشگر انتخاب کنید. توصیه می کنیم استفاده کنید نانو، اولین گزینه در مثال ما:

آ command-line پنجره ای که دستور crontab را با پرچم -e نشان می دهد.  برای ایجاد فایل crontab اصلی و تعیین ویرایشگر ترجیحی استفاده می شود

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

مهم! به خاطر داشته باشید که crontab از زمان و تاریخ فعلی سیستم استفاده می کند، به این معنی که منطقه زمانی با سیستم ریشه مشترک است.

یک کار را برای یک زمان مشخص برنامه ریزی کنید

یکی از ساده‌ترین راه‌ها برای آزمایش cron، برنامه‌ریزی یک کار برای یک زمان خاص است. برای مثال، cron job زیر ما را اجرا خواهد کرد اسکریپت .sh در زمان مشخص شده، یعنی 15 آگوست، در 03:30.

30 08 10 06 * cat /helloworld.sh

مشاهده ورودی های Crontab

از آنجایی که تمام کارهای cron در یک فایل crontab ذخیره می شوند، می توانید مواردی را که قبلاً در حال اجرا هستند مشاهده کنید. برای این کار از دستور زیر برای نمایش محتویات فایل های crontab خود استفاده کنید:

crontab -l
آ command-line پنجره ای که دستور crontab -l را نشان می دهد.  تمام خطوط جدید این فایل، cron job های جدیدی ایجاد می کند که برای اجرای وظایف مشخص شده توسط کاربر استفاده می شود.آ command-line پنجره ای که دستور crontab -l را نشان می دهد.  تمام خطوط جدید این فایل، cron job های جدیدی ایجاد می کند که برای اجرای وظایف مشخص شده توسط کاربر استفاده می شود.

ویرایش ورودی های Crontab

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

crontab -e

برای هر دقیقه یک کار را برنامه ریزی کنید

برنامه ریزی وظایف برای اجرا در هر دقیقه کار آسانی نیست. در مثال زیر آموزش خواهیم داد گربه اجرای دستور برای اجرای دوره ای:

* * * * * cat /home/helloworld.sh
آ command-line پنجره با ویرایشگر نانو باز است.  محتویات یک فایل crontab قابل مشاهده است، آخرین خط یک کار cron را نشان می دهد که هر دقیقه اسکریپت ما را اجرا می کند.آ command-line پنجره با ویرایشگر نانو باز است.  محتویات یک فایل crontab قابل مشاهده است، آخرین خط یک کار cron را نشان می دهد که هر دقیقه اسکریپت ما را اجرا می کند.

هر روز یک کار پس زمینه را برنامه ریزی کنید

برای برنامه ریزی یک کار پس زمینه برای اجرا هر روز، می توانید از @روزانه دستور 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، کاربران می توانند وظایف مختلفی را برای سیستم خود برنامه ریزی کنند. به عنوان مثال، تعمیر و نگهداری سیستم را انجام دهید روی یک روز خاص یا حتی برنامه ریزی کنید که هر روز هفته اجرا شود.

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

اگر سوال یا نظری دارید، در قسمت نظرات نظر بدهید.