Varför konvertera TIMER till CRON?
En systemd .timer och ett cron-jobb schemalägger båda återkommande kommandon, så administratörer som lämnar systemd vill ha samma schema uttryckt i .CRON-syntax. Kalenderuttrycket OnCalendar= mappar tydligt mot cron-fälten för minut-timme-dag-månad-veckodag för de flesta vanliga scheman.
Hur man konverterar TIMER till CRON
crontab + manuell mappning FREE
Kör crontab -e och lägg till en rad vars fem tidsfält matchar timern, t.ex. OnCalendar=*-*-* 02:00:00 blir 0 2 * * * /sökväg/till/kommando.
systemd-analyze calendar FREE
Kör systemd-analyze calendar "*-*-* 02:00:00" för att bekräfta de exakta nästa körtiderna för OnCalendar-värdet innan du översätter det till cron-fält.
Om dessa format
En .timer-fil är en systemd-enhet som schemalägger när en annan enhet (vanligtvis en matchande .service-fil) körs på Linux, och fungerar som en modern ersättare för cron. Det är en liten…
Öppna detaljer för .TIMER →En .CRON-fil är associerad med Unraid OS Cron data, en misc-fil.
Öppna detaljer för .CRON →Kvalitet & vad man bör tänka på
- Endast schemat flyttas; kommando, miljö och användare kommer från den tillhörande
.service-filen och måste läggas till i cron-raden manuellt. - systemd-tillägg som
Persistent=(återupptagning efter driftstopp),RandomizedDelaySec=och noggrannhetsfönster har ingen motsvarighet i cron och går förlorade. - Uttryck med sub-minuters precision eller komplexa
OnCalendar-uttryck kan inte representeras i cron-syntaxens fem fält på minutnivå.
Vanliga frågor
Finns det en automatisk konverterare från timer till cron?
OnCalendar=-schemat till cron-fält för hand, och verifierar förslagsvis med systemd-analyze calendar och crontab.guru.Varifrån kommer kommandot för cron-raden?
ExecStart= i den matchande .service-enhet som timern aktiverar.Hur konverterar jag scheman av typen `@daily`?
OnCalendar=*-*-* 00:00:00 motsvarar @daily eller 0 0 * * * i cron.Kommer missade körningar fortfarande att utföras?
Persistent=true gör.