Dlaczego konwertować TIMER na CRON?
Zarówno .timer w systemd, jak i zadanie cron służą do planowania cyklicznych poleceń, więc administratorzy rezygnujący z systemd chcą wyrazić ten sam harmonogram w składni .CRON. Wyrażenie kalendarzowe OnCalendar= mapuje się czysto na pola minuta-godzina-dzień-miesiąc-dzień_tygodnia w cronie dla większości typowych harmonogramów.
Jak przekonwertować TIMER na CRON
crontab + ręczne mapowanie FREE
Uruchom crontab -e i dodaj linię, której pięć pól czasowych odpowiada timerowi, np. OnCalendar=*-*-* 02:00:00 staje się 0 2 * * * /sciezka/do/polecenia.
systemd-analyze calendar FREE
Uruchom systemd-analyze calendar "*-*-* 02:00:00", aby potwierdzić dokładne czasy kolejnych uruchomień wartości OnCalendar przed przetłumaczeniem jej na pola cron.
O tych formatach
Plik .timer to jednostka systemd, która planuje czas uruchomienia innej jednostki (zazwyczaj odpowiadającego jej pliku .service) w systemie Linux, działając jako nowoczesny zamiennik dla…
Otwórz szczegóły .TIMER →Plik .CRON jest powiązany z Unraid OS Cron data, który jest plikiem typu misc.
Otwórz szczegóły .CRON →Jakość i na co uważać
- Przenoszony jest tylko harmonogram; polecenie, środowisko i użytkownik pochodzą z powiązanego pliku
.servicei muszą zostać dodane do linii cron samodzielnie. - Dodatki systemd, takie jak
Persistent=(nadrabianie po przestoju),RandomizedDelaySec=i okna dokładności, nie mają odpowiedników w cronie i zostaną utracone. - Wyrażenia
OnCalendaro częstotliwości mniejszej niż minuta lub bardzo złożone nie mogą być reprezentowane w pięciopolowej składni crona opartej na minutach.
Najczęściej zadawane pytania
Czy istnieje automatyczny konwerter timer-to-cron?
OnCalendar= należy zmapować na pola cron ręcznie, opcjonalnie weryfikując go za pomocą systemd-analyze calendar i crontab.guru.Skąd pochodzi polecenie dla linii cron?
ExecStart= w pasującej jednostce .service, którą aktywuje dany timer.Jak konwertować harmonogramy w stylu `@daily`?
OnCalendar=*-*-* 00:00:00 odpowiada @daily lub 0 0 * * * w cronie.Czy nadrabianie zaległych uruchomień nadal będzie działać?
Persistent=true.