Perché convertire TIMER in CRON?
Un .timer di systemd e un processo cron pianificano entrambi comandi ricorrenti, quindi gli amministratori che abbandonano systemd desiderano la stessa pianificazione espressa con la sintassi .CRON. L'espressione di calendario OnCalendar= si mappa chiaramente sui campi minuto-ora-giorno-mese-giorno_settimana di cron per la maggior parte delle pianificazioni comuni.
Come convertire TIMER in CRON
crontab + mappatura manuale FREE
Esegui crontab -e e aggiungi una riga i cui cinque campi temporali corrispondano al timer, ad esempio OnCalendar=*-*-* 02:00:00 diventa 0 2 * * * /percorso/del/comando.
systemd-analyze calendar FREE
Esegui systemd-analyze calendar "*-*-* 02:00:00" per confermare gli orari esatti delle prossime esecuzioni del valore OnCalendar prima di tradurlo nei campi cron.
Informazioni su questi formati
Un file .timer è un'unità di systemd che pianifica l'esecuzione di un'altra unità (solitamente un file .service corrispondente) su Linux, fungendo da sostituto moderno di cron. Si tratta di…
Apri dettagli .TIMER →Un file .CRON è associato a Unraid OS Cron data, un file di tipo misc.
Apri dettagli .CRON →Qualità e a cosa prestare attenzione
- Viene spostata solo la pianificazione; il comando, l'ambiente e l'utente provengono dal file
.serviceassociato e devono essere aggiunti manualmente alla riga cron. - Le funzioni extra di systemd come
Persistent=(recupero dopo un periodo di inattività),RandomizedDelaySec=e le finestre di precisione non hanno un equivalente in cron e vengono perse. - Le espressioni
OnCalendarcomplesse o inferiori al minuto non possono essere rappresentate nella sintassi di cron a cinque campi basata sui minuti.
Domande frequenti
Esiste un convertitore automatico da timer a cron?
OnCalendar= sui campi cron, verificando opzionalmente con systemd-analyze calendar e crontab.guru.Da dove proviene il comando per la riga cron?
ExecStart= nell'unità .service corrispondente che il timer attiva.Come converto le pianificazioni in stile `@daily`?
OnCalendar=*-*-* 00:00:00 equivale a @daily o 0 0 * * * in cron.Le esecuzioni di recupero funzioneranno ancora?
Persistent=true.