Hoppa till innehåll
100% lokalt

Cron till systemd timer

Konvertera ett cron-uttryck till ett färdigt att använda systemd .timer och .service unit-par.

Inmatning
Utmatning

Cron till systemd timer

Klistra in ett cron-uttryck — av det slag du skulle sätta i en crontab, som `0 3 * * *` eller `*/15 9-17 * * 1-5` — och det här verktyget konverterar det till ett systemd `OnCalendar=`-värde, och monterar sedan den fullständiga `.timer`-enheten och dess motsvarande `.service`-enhet omkring den. Migration av en server från cron till systemd innebär normalt att göra denna översättning för hand för varje jobb; detta gör det omedelbar och korrekt, inklusive fältexpansion för steg och intervall.

Ställ in enhetsnamnet och kommandot som ska köras, och eventuellt användaren och arbetskatalogen som tjänsten ska använda. Slumpmässig fördröjning lägger till `RandomizedDelaySec=` så att en serverflotta inte alla vaknar samtidigt; Persistent lägger till `Persistent=true` så att en missad körning när maskinen var avstängd avfyras så snart den är tillbaka. En tidszon lägger till ett IANA-zonnamn till varje schemarad istället för att förlita sig på systemets lokala tid. Klistra in flera cron-rader på en gång för att bygga en timer med flera `OnCalendar=`-poster — praktiskt för ett jobb som tidigare hade mer än en crontab-rad.

Sätt på beskrivningen på tydligt språk för att få en enradskommentar ovanför varje schema som förklarar när den körs, på ditt eget språk. Verktyget övervakar också den ena cron-konstruktion som systemd verkligen inte kan återskapa: när både dag-i-månad och dag-i-vecka är begränsade, behandlar cron dem som ELLER medan systemds OnCalendar alltid ANDar dem — när detta händer läggs en varningskommentar till så att missmatningen inte levereras i tysthet. Ett värde utanför intervallet eller ett uttryck med fel antal fält rapporteras som ett tydligt fel istället för att gissas.

Allt körs i din webbläsare — cron-uttrycket och enhetsfilen lämnar aldrig din enhet. Kopiera resultatet, ladda ned det som en .txt-fil för att släppa i `/etc/systemd/system/`, eller skicka det till ett annat verktyg för att fortsätta arbeta på det.

FAQ

Varför innehåller utmatningen två enheter?
En systemd-timer är bara för schemaläggning; den behöver en motsvarande .service-enhet för att faktiskt köra kommandot. Verktyget genererar båda, länkade med Unit=.
Kan jag konvertera mer än en cron-rad åt gången?
Ja. Klistra in flera uttryck, ett per rad, och de blir flera OnCalendar=-poster i en enda timenhet för samma kommando.
Vad betyder varningen för dag-i-månad/dag-i-vecka?
Cron avfyras när något fält matchar om båda är begränsade; systemds OnCalendar kräver att båda matchar. Verktyget varnar dig när detta ändrar schemat istället för att konvertera det i tysthet.
Stöder den @daily, @hourly och de andra cron-makrona?
Ja, tillsammans med @weekly, @monthly, @yearly och @annually/@midnight, utökad till deras standard fem fält före konvertering.
Laddas mitt cron-uttryck eller kommando någonstans upp?
Nej. Konverteringen körs helt i din webbläsare — ingenting du skriver skickas till en server.