Ugrás a tartalomhoz
100% helyi

Cron to systemd timer

A cron kifejezést használatra kész systemd .timer és .service unit párra alakítsd.

Bemenet
Kimenet

Cron to systemd timer

Illessz be egy cron kifejezést — az olyan típust, amit a crontabba tennél, például `0 3 * * *` vagy `*/15 9-17 * * 1-5` — és ez az eszköz systemd `OnCalendar=` értékké konvertálja, majd a teljes `.timer` unit és a hozzá tartozó `.service` unit köré építi fel. A szerver crontab-ról systemd-re való migrálása szokásosan ezt a fordítást kézzel kell elvégezni minden feladathoz; ez azonnal és helyesen teszi meg, beleértve a lépéseket és tartományokat is.

Adja meg az unit nevet és a futtatandó parancsot, valamint opcionálisan azt a felhasználót és munkakönyvtárat, amelyet a service-nek használnia kell. A véletlenszerű késleltetés `RandomizedDelaySec=` értéket ad, így a szerverek flottája nem ébred fel egyszerre; a Persistent `Persistent=true` értéket ad, így a gép kikapcsolása közben kihagyott futtatás amint visszatér, azonnal lefut. Az időzóna az IANA zónanevet minden ütemezési sorhoz csatolja, ahelyett, hogy a rendszer helyi idejére támaszkodna. Több cron sort is beilleszthetsz egyszerre, hogy egy timer-t építs több `OnCalendar=` bejegyzéssel — hasznos egy olyan feladatnál, amelyik korábban több crontab sorral rendelkezett.

A sima nyelvű leírás bekapcsolásával kapsz egy sor megjegyzést minden ütemezés fölött, amely magyarázza, mikor fut, a saját nyelveden. Az eszköz azt is figyeli, amely cron konstrukció a systemd valóban nem tudja reprodukálni: amikor a hónapnap és a hét napja is korlátozott, a cron VAGY-ként kezeli, míg a systemd OnCalendar mindig ÉS-ként — amikor ez megtörténik, egy figyelmeztető megjegyzés hozzáadódik, így az eltérés nem szállítódik be hallgatagon. Az sávon kívüli mező vagy a rossz számú mezőt tartalmazó kifejezés egyszerű hibaként jelenik meg, ahelyett, hogy sejtgetésre kerülne.

Mindenki a böngészőjében fut — a cron kifejezés és az unit fájl soha nem hagyja el az eszközödet. Másold ki az eredményt, töltsd le .txt fájlként, hogy bedobhasd a `/etc/systemd/system/` könyvtárba, vagy küldd el egy másik eszközre, hogy folytassad a munkat rajta.

Gyakori kérdések

Miért tartalmaz az kimenet két unit-et?
A systemd timer csak ütemez; szüksége van egy egyező .service unit-ra, hogy ténylegesen futtassa a parancsot. Az eszköz mindkettőt legenerálja, Unit= segítségével összekapcsolva.
Konvertálhatok több cron sort egyszerre?
Igen. Több kifejezést is illeszthetsz be, egyenként egy sorba, és azok több OnCalendar= bejegyzésé válnak egyetlen timer unit-ben, ugyanahhoz a parancshoz.
Mit jelent a hónapnap/hétfonap figyelmeztetés?
A cron akkor indít, ha az egyik mező megfelel, ha mindkettő korlátozott; a systemd OnCalendar viszont mindig mindkettőt igényli. Az eszköz figyelmezteti, ha ez megváltoztatja az ütemezést, ahelyett, hogy hallgatagon konvertálná.
Támogatja a @daily, @hourly és a többi cron makrót?
Igen, a @weekly, @monthly, @yearly és @annually/@midnight mellett, kiterjesztve a standard öt-mezős megfelelőjükre az átalakítás előtt.
A cron kifejezésem vagy parancskaim fel vannak töltve valahova?
Nem. Az átalakítás teljesen a böngészőjében zajlik — semmi, amit begépelsz, nem kerül fel a szerverre.