Pergunta

Como posso configurar meu crontab para executar o script X às 23h59 todos os dias sem me enviar um e-mail ou criar logs?

No momento meu crontab se parece com isto

@daily /path/to/script.sh
Foi útil?

Solução

Ao fazer crontab -e, tente isto:

59 23 * * * /usr/sbin/myscript > /dev/null

Que significa:Aos 59 minutos e 23 horas todos os dias (*) todos os meses, todos os dias da semana, execute myscript.

Ver homem crontab para mais algumas informações e exemplos.

Outras dicas

Acompanhando resposta de svrist, dependendo do seu shell, o 2>&1 deve ir depois > /dev/null ou você ainda verá a saída de stderr.

O seguinte irá silenciar stdout e stderr:

59 23 * * * /usr/sbin/myscript > /dev/null 2>&1

O seguinte silencia o stdout, mas o stderr ainda aparecerá (via stdout):

59 23 * * * /usr/sbin/myscript 2>&1 > /dev/null

O capítulo do Advanced Bash Scripting Guide sobre redirecionamento de IO é uma boa referência - pesquise 2>&1 para ver alguns exemplos.

Com a resposta acima, você receberá um e-mail com qualquer texto escrito para stderr.Algumas pessoas também redirecionam isso e garantem que o script grave um log.

... 2>&1 ....
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top