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:
sleep 60; grep crontab /var/log/syslog | tail
Ou, para não esperar um minuto inteiro, mas apenas até o próximo minuto + 5 segundos:
sleep $(( 60 - $(date +%S) + 5 )) && grep cron /var/log/syslog | tail
Exemplo de saída com um erro:
Jan 9 19:10:57 r530a cron[107258]: Error: bad minute; while reading /etc/crontab
Jan 9 19:10:57 r530a cron[107258]: (*system*) ERROR (Syntax error, this crontab file will be ignored)
Boa saída:
Jan 9 19:19:01 r530a cron[107258]: (*system*) RELOAD (/etc/crontab)
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)