OnCalendar sintaksa
Format je [DanUNedelji] Datum Vreme, pri čemu je svaki deo opcion: Mon..Fri *-*-* 06:30:00. Dani u nedelji koriste troslovna imena sa .. opsezima i zarezima. Datum je YYYY-MM-DD sa * za bilo koji; vreme je HH:MM:SS (sekunde su podrazumevano 00). Svako polje prihvata liste (1,15), opsege (8..18) i korake (*/15 ili 0/15, 8..18/2). Prečice: minutely, hourly, daily, weekly, monthly, yearly, quarterly. Ime zone na kraju primenjuje izraz u toj zoni (*-*-* 09:00 Europe/Belgrade).
| Cron | OnCalendar |
|---|---|
| */5 * * * * | *-*-* *:*/5:00 |
| 0 * * * * | hourly |
| 30 6 * * 1-5 | Mon..Fri *-*-* 06:30:00 |
| 0 9 1 * * | *-*-01 09:00:00 |
| 0 3 * * 0 | Sun *-*-* 03:00:00 |
| 0 0 L * * | *-*~01 00:00:00 (poslednji dan u mesecu: ~ broji od kraja) |
Šta tajmeri rade, a cron ne
- Persistent=true: ako je mašina bila ugašena kada je tajmer trebalo da se okine, pokreni ga pri sledećem bootu. Cron ga jednostavno propusti (za to postoji anacron).
- RandomizedDelaySec=: raspoređuje izvršavanja unutar prozora da flota mašina ne bi udarila server u istoj sekundi.
- AccuracySec=: podrazumevano jedan minut; postavite
1sako je tačno vreme bitno, ili duže da grupišete buđenja i štedite energiju. - Logovi idu u journal (
journalctl -u ime.service), posao radi sa sandboxingom, zavisnostima i ograničenjima resursa servisa, asystemctl list-timersprikazuje sledeće i poslednje izvršavanje.
Provera izraza
systemd-analyze calendar "Mon..Fri *-*-* 06:30" ispisuje normalizovani oblik i sledeće okidanje, što ova stranica reprodukuje. Posle instaliranja tajmera: systemctl daemon-reload && systemctl enable --now ime.timer, zatim systemctl list-timers --all.
Pitanja
Zašto se moj tajmer pokrene jednom i nikad više?
Obično je tajmer pokrenut, ali nije omogućen (systemctl enable --now ime.timer), ili je servis koji okida oneshot bez odgovarajućeg timer unita. Proverite systemctl list-timers i journalctl -u ime.timer.
Kako da pokrenem tajmer kao običan korisnik?
Stavite unite u ~/.config/systemd/user/, koristite systemctl --user i pokrenite loginctl enable-linger $USER da bi se okidali i bez aktivne sesije prijave.
Da li OnCalendar koristi sistemsku vremensku zonu?
Da, osim ako se izraz ne završava imenom zone, što systemd 243+ podržava. Kontejnerske i cloud slike su obično u UTC; postavite zonu eksplicitno ako je raspored zamišljen u lokalnom vremenu.
Kako da izrazim „svakog radnog dana u 9 i 17“?
Mon..Fri *-*-* 09,17:00:00. Liste rade u bilo kom polju.