$ crontab -e
Montador de crontab # grátis, sem cadastro
O cron é o funcionário mais pontual da casa: nunca atrasa, nunca reclama e nunca avisa quando dá errado. Aqui a expressão é traduzida para o português antes de ir para o servidor, com as próximas execuções e as pegadinhas que o cron não conta.
Nada do que se digita aqui sai deste navegador. O endereço da página guarda a expressão, então dá para mandar o link para quem vai revisar.
$ man 5 crontab
Cinco campos e um comando
Cada linha do crontab diz quando e o quê. O quando ocupa cinco campos, separados por espaço, sempre nesta ordem:
┌───────────── minuto 0-59 │ ┌─────────── hora 0-23 │ │ ┌───────── dia do mês 1-31 │ │ │ ┌─────── mês 1-12 ou jan-dec │ │ │ │ ┌───── dia da semana 0-7 ou sun-sat (0 e 7 são domingo) │ │ │ │ │ * * * * * comando
*vale qualquer valor. É o "tanto faz" do cron.1,15é lista: no 1 e no 15.9-18é intervalo, com as duas pontas incluídas.*/15é passo: de 15 em 15, a partir do começo.9-18/2anda de 2 em 2 dentro do intervalo.- Os nomes de mês e de dia são em inglês:
mon, nãoseg. O cron nunca fez curso de português.
Três pegadinhas que o cron não conta
- Dia do mês e dia da semana juntos viram OU.
0 9 1 * 1roda no dia 1 e também em toda segunda. Quem queria a primeira segunda do mês ganhou quatro ou cinco execuções de brinde. - O
%é quebra de linha. No crontab,date +%Fcorta o comando ao meio. O certo édate +\%F. - O ambiente é outro. O cron não lê o
.bashrc, usa um PATH curto e roda a partir do diretório pessoal. O que funciona no terminal pode não funcionar às três da manhã. Caminho completo em tudo resolve.
Do navegador para o servidor
crontab -e # abre o crontab no editor; cole a linha e salve
crontab -l # confere o que ficou
grep CRON /var/log/syslog # Debian e Ubuntu: o cron anota cada execução aqui
journalctl -u cron -n 20 # com systemd (em Red Hat e afins, crond)
O cron é só o relógio. O script que ele dispara é outra conversa, e essa conversa os cursos levam do primeiro #!/bin/bash até a automação que roda sozinha.
$ tee whatsapp telegram linkedin < crontab.html
Passe adiante # o tee manda a mesma saída para vários lugares
Ferramenta boa é como comando bem escrito: vale mais quando circula. Mande para quem ainda agenda tarefa no chute e descobre o erro às três da manhã. E o portal vai junto: tem mais de onde esta saiu.