Prefiro manter as tarefas agendadas no / etc / crontab para ver rapidamente o que está programado para ser executado, independentemente de qual usuário a tarefa é executada.
O único problema é que o formato não é validado ao salvar, ao contrário do crontab -e - para que um caractere perdido possa interromper silenciosamente todo o cron.
Existe uma maneira de validar o formato / etc / crontab antes / depois do salvamento?
Respostas:
A única maneira confiável que encontrei é verificar o log.
cron
verifica a/etc/crontab
cada minuto e registra uma mensagem indicando que o recarregou ou que encontrou um erro.Então, após a edição, execute o seguinte:
Ou, para não esperar um minuto inteiro, mas apenas até o próximo minuto + 5 segundos:
Exemplo de saída com um erro:
Boa saída:
Está no Debian 8. Em outros sistemas, o cron pode registrar em um arquivo diferente.
(Eu pensei que poderia evitar procurar o arquivo de log correto usando systemd's
journalctl -u cron
, mas isso não me mostrou essas entradas de log e, na verdade, parece ter parado de registrar eventos cron 2 dias atrás, por algum motivo)fonte
Outra solução mais recente é o script python chkcrontab
fonte
Os scripts de shell legais perversos têm um script de shell que valida arquivos crontab.
Você pode obter o arquivo zip que contém o script aqui
O script é chamado de verificaçãocron
fonte
Encontrei esta solução legal aqui: https://crontab.guru
Ele não apenas valida o crontab, mas informa explicitamente o que e quando o crontab será executado e destaca onde estão os erros.
fonte
No Ubuntu, parece que eu posso simplesmente executar:
NOTA: isso tem o efeito colateral de iniciar este cronjob (obrigado @NZD)
Se o arquivo for inválido, ocorrerá um erro, como:
fonte
* 4/0 * * /bin/myscript.sh
- o4/0
é inválido. mas não é pego por esse método0
proibido? unix.stackexchange.com/questions/32027/…