Adquiri o hábito de incluir .
em algum post do blog:
0 0 * * * . /usr/local/bin/somescript.sh
...ao invés de:
0 0 * * * /usr/local/bin/somescript.sh
Por exemplo, um editor visual de expressão de agendamento cron cron.guru considera o uso do caractere como um erro, mas meus scripts parecem ter sido executados conforme especificado pelo menos até agora.
cron
passa o comando inteiro, incluindo um ponto, se presente, para um shell para execução; o mesmo.
acontece com o comando shell correspondente, que “origina” o script no shell atual em vez de iniciar um novo processo para executá-lo. Para um.sh
arquivo, isso provavelmente seria um novo shell.Consulte Qual é a diferença entre sourcing ('.' ou 'source') e executar um arquivo no bash? para detalhes.
cron.guru valida apenas expressões de agendamento, ou seja , a parte da
crontab
entrada que define quando deve ser executada; é por isso que “0 8 * * Seg.” está marcado como inválido — essa não é uma expressão de agendamento válida.