Preskoči na vsebino
100% lokalno

Cron v systemd timer

Pretvori cron izraz v pripravljeni par systemd .timer in .service enot.

Vhod
Izhod

Cron v systemd timer

Prilepi cron izraz — kakršnega bi vstavil v crontab, kot `0 3 * * *` ali `*/15 9-17 * * 1-5` — in to orodje ga pretvori v systemd `OnCalendar=` vrednost, nato pa sestavi celoten `.timer` in njuno ustrezno `.service` enoto. Premik iz crona na systemd običajno pomeni ročno prevajanje za vsak opravilo; to orodje ga naredi trenutno in pravilno, vključno s proširjenjem polj za korake in obsege.

Nastavi naziv enote in ukaz za zagon, ter po želji uporabnika in delovni imenik, ki ju mora uporabiti storitev. Naključna zamuda doda `RandomizedDelaySec=`, da se flota strežnikov ne prebudi hkrati; Persistent doda `Persistent=true`, tako da se opravilo, ki je zamujeno, ko je bil strežnik izklopljen, zažene takoj ko se vrne. Časovna cona doda ime IANA cone vsaki liniji razporeda namesto zanašanja na sistemski čas lokalnosti. Prilepi več cron vrstic hkrati, da zgradišč en timer s številnimi `OnCalendar=` vnosoma — koristno za opravilo, ki je nekoč imelo več kot eno crontab vrstico.

Vključi opis v navadnem jeziku in prejmeš enolinijski komentar nad vsakim razporedom, ki pojasnjuje, kdaj se zažene, v tvojem jeziku. Orodje tudi opazi ena cron konstrukcija, ki je systemd res ne more reproducirati: ko sta dan-v-mesecu in dan-v-tednu omejena, je cron obravnava kot OR, medtem ko je systemd-ov OnCalendar vedno AND — ko se to zgodi, je dodano opozorilo, da neujemanje ne bi šlo tiho. Polje zunaj območja ali izraz z napačnim številom polj je prijavljen kot navadna napaka namesto ugibanja.

Vse se izvršava v tvojem brskalniku — cron izraz in datoteka enote nikoli ne zapustita tvojo napravo. Kopiraj rezultat, preneseš ga kot .txt datoteko za spuščanje v `/etc/systemd/system/`, ali ga pošlješ drugemu orodju, da nadaljuješ delo.

FAQ

Zakaj rezultat vključuje dve enoti?
systemd timer le razporeja; potrebuje ujemajočo .service enoto, da dejansko zažene ukaz. Orodje genira obe, povezani z Unit=.
Ali lahko pretvorim več kot eno cron vrstico hkrati?
Da. Prilepi več izrazov, enega na vrstico, in postanejo več OnCalendar= vnosov v eni timer enoti za isti ukaz.
Kaj pomeni opozorilo o dan-v-mesecu/dan-v-tednu?
Cron se zažene, ko se ujema katero koli polje, če sta obe omejena; systemd-ov OnCalendar zahteva, da se ujemata obe. Orodje te opozori, ko to spremeni razpored namesto da ga molče pretvori.
Ali podpira @daily, @hourly in druge cron makroe?
Da, skupaj z @weekly, @monthly, @yearly in @annually/@midnight, razširjeni v njihove standardne petpolske enakovrednosti pred pretvorbo.
Ali sta moj cron izraz ali ukaz naložena nekje?
Ne. Pretvorba se izvršuje v celoti v tvojem brskalniku — nič, kar napišeš, se ne pošlje na strežnik.