آموزش برنامه ریزی cron job در Fedora CoreOS

schedule_with_systemd_timerیکی از نسخه های فدورا که برای اجرای کانتینرها (Container) از آن استفاده می شود Fedora CoreOS نام دارد. در این نسخه بر خلاف سیستم های سنتی که از cron job برای زمانبندی اجرای برخی از برنامه ها استفاده می شود، دیگر قابل استفاده نیست و بجای آن باید از systemd timer استفاده کرد.

در این مطلب قصد داریم تا با استفاده از systemd timer در Fedora CoreOS یک job را به صورت متناوب برنامه ریزی کنیم.

در این مثال قصد داریم نمونه cron job پایین را که قبلا از آن استفاده می کردیم را تبدیل به یک systemd timer در Fedora CoreOS کنیم:

*/10 * * * * /usr/bin/date >> /tmp/date

1- Timer ها به صورت مستقیم با system unit ها کار می کنند. به همین خاطر ابتدا فایل زیر را ایجاد کنید:

/etc/systemd/system/date.service

سپس خطوط زیر را درون آن بنویسید:

[Unit]
Description=Prints date into /tmp/date file

[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c ‘/usr/bin/date >> /tmp/date’

 

2- اکنون باید یک timer unit با همان نام بسازید اما با پسوند timer. که برای اینکار کافیست تا فایل زیر را ایجاد کنید:

/etc/systemd/system/date.timer

اکنون خطوط زیر را درون فایل بنویسید:

[Unit]
Description=Run date.service every 10 minutes

[Timer]
OnCalendar=*:0/10

 

3- برای فعال کردن timer کافیست تا دستورهای زیر را اجرا کنید:

systemctl start date.timer

systemctl enable date.timer

 

4- این تنظیمات باعث می شود تا timer.service هر 10 دقیقه اجرا شود. برای لیست کردن همه ی timer های فعال بر روی سیستم می توانید از دستور زیر استفاده کنید:

systemctl list-timers

همچنین برای لیست کردن همه timer ها می توانید از دستور زیر استفاده کنید:

systemctl list-timers --all

 

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.