Ir para o conteúdo
Totalmente local

Cron para timer systemd

Converta uma expressão cron numa unidade .timer e .service systemd pronta a usar.

Entrada
Saída

Cron para timer systemd

Cole uma expressão cron — como a que coloca numa crontab, por exemplo `0 3 * * *` ou `*/15 9-17 * * 1-5` — e esta ferramenta converte-a num valor systemd `OnCalendar=`, depois monta a unidade `.timer` completa e a sua unidade `.service` correspondente. Migrar um servidor de cron para systemd normalmente significa traduzir isto manualmente para cada tarefa; esta ferramenta fá-lo instantaneamente e corretamente, incluindo a expansão de campos para passos e intervalos.

Defina o nome da unidade e o comando a executar, e opcionalmente o utilizador e o diretório de trabalho que o serviço deve usar. O atraso aleatório adiciona `RandomizedDelaySec=` para que uma frota de servidores não acorde tudo ao mesmo tempo; Persistente adiciona `Persistent=true` para que uma execução perdida enquanto a máquina estava desligada se dispare assim que volte online. Uma zona horária acrescenta um nome de zona IANA a cada linha de agendamento em vez de depender da hora local do sistema. Cole várias linhas cron de uma vez para criar um timer com várias entradas `OnCalendar=` — útil para uma tarefa que costumava ter mais de uma linha na crontab.

Ligue a descrição em linguagem clara para obter um comentário de uma linha acima de cada agendamento explicando quando ele é executado, no seu próprio idioma. A ferramenta também vigia a única construção cron que systemd genuinamente não consegue reproduzir: quando tanto o dia do mês como o dia da semana são restritos, cron trata-os como OU enquanto o OnCalendar do systemd sempre os trata como E — quando isto acontece, um comentário de aviso é adicionado para que o desencontro não seja enviado silenciosamente. Um campo fora do intervalo ou uma expressão com um número errado de campos é reportado como um erro simples em vez de ser adivinhado.

Tudo corre no seu navegador — a expressão cron e o arquivo de unidade nunca saem do seu dispositivo. Copie o resultado, transfira-o como um arquivo .txt para largar em `/etc/systemd/system/`, ou envie-o para outra ferramenta para continuar a trabalhar nele.

FAQ

Porque é que o resultado inclui duas unidades?
Um timer systemd apenas agenda; precisa de uma unidade .service correspondente para realmente executar o comando. A ferramenta gera ambas, ligadas entre si com Unit=.
Posso converter mais de uma linha cron de uma vez?
Sim. Cole várias expressões, uma por linha, e tornam-se múltiplas entradas OnCalendar= numa única unidade de timer para o mesmo comando.
O que significa o aviso de dia do mês/dia da semana?
cron dispara quando ambos os campos combinam se ambos são restritos; o OnCalendar do systemd requer que ambos combinem. A ferramenta avisa-o quando isto muda o agendamento em vez de o converter silenciosamente.
Suporta @daily, @hourly e as outras macros cron?
Sim, juntamente com @weekly, @monthly, @yearly e @annually/@midnight, expandidos para os seus equivalentes padrão de cinco campos antes da conversão.
A minha expressão cron ou comando são carregados em algum lugar?
Não. A conversão corre inteiramente no seu navegador — nada do que escreve é enviado para um servidor.