Por que converter TIMER para CRON?
Um .timer do systemd e um trabalho cron agendam comandos recorrentes, então administradores que estão saindo do systemd desejam o mesmo agendamento expresso na sintaxe .CRON. A expressão de calendário OnCalendar= mapeia-se de forma limpa nos campos de minuto-hora-dia-mês-dia da semana do cron para a maioria dos agendamentos comuns.
Como converter TIMER para CRON
crontab + mapeamento manual FREE
Execute crontab -e e adicione uma linha cujos cinco campos de tempo correspondam ao timer, ex: OnCalendar=*-*-* 02:00:00 torna-se 0 2 * * * /caminho/para/comando.
systemd-analyze calendar FREE
Execute systemd-analyze calendar "*-*-* 02:00:00" para confirmar os horários exatos das próximas execuções do valor OnCalendar antes de traduzi-lo para os campos do cron.
Sobre estes formatos
Um arquivo .timer é uma unidade do systemd que agenda quando outra unidade (geralmente um arquivo .service correspondente) deve ser executada no Linux, funcionando como um substituto…
Abrir detalhes de .TIMER →Um arquivo .CRON está associado ao Unraid OS Cron data, um arquivo do tipo misc.
Abrir detalhes de .CRON →Qualidade e o que observar
- Apenas o agendamento é movido; o comando, o ambiente e o usuário vêm do arquivo
.servicepareado e devem ser adicionados à linha do cron por você. - Recursos extras do systemd como
Persistent=(recuperação após tempo de inatividade),RandomizedDelaySec=e janelas de precisão não têm equivalente no cron e são perdidos. - Expressões
OnCalendarcomplexas ou com precisão de sub-minuto não podem ser representadas na sintaxe de cinco campos do cron, que possui nível de minuto.
Perguntas frequentes
Existe um conversor automático de timer para cron?
OnCalendar= para os campos do cron manualmente, opcionalmente verificando com systemd-analyze calendar e crontab.guru.De onde vem o comando para a linha do cron?
ExecStart= na unidade .service correspondente que o timer ativa.Como converto agendamentos do estilo `@daily`?
OnCalendar=*-*-* 00:00:00 equivale a @daily ou 0 0 * * * no cron.As execuções de recuperação ainda funcionarão?
Persistent=true faz.