Eu escrevi um script para checar um serviço e enviar e-mail se encontrasse algum problema. Ele funciona bem na linha de comando. Eu me esforcei para fazer isso funcionar corretamente no cron.
Este é o meu crontab atual (editado):
[email protected]
BASH_ENV=$HOME/.bashrc
0,5,10,15,20,25,30,35,40,45,50,55 * * * * . $HOME/.bashrc;$HOME/bin/monitorDataSourceStatus.groovy >> $HOME/mDSS.out 2>&1
Eu não acho que o cron do Ubuntu use a variável "BASH_ENV", mas eu vi isso mencionado em outras referências "cron", então eu pensei em testá-lo. O MAILTO também é provavelmente ignorado, pois não tenho um MTA instalado.
Eu sei que a operação básica do cron está ok, porque eu recebo uma entrada do syslog a cada cinco minutos, conforme especificado. A última é assim:
Oct 2 09:30:01 hostname CRON[20268]: (myid) CMD (. $HOME/.bashrc;$HOME/bin/monitorDataSourceStatus.groovy >> $HOME/mDSS.out 2>&1)
Oct 2 09:30:01 hostname CRON[20267]: (CRON) info (No MTA installed, discarding output)
Oct 2 09:30:10 hostname crontab[20275]: (myid) LIST (myid)
No entanto, posso dizer de efeitos colaterais esperados que não parece que o script está sendo executado. Eu habilitei algumas instruções de impressão no script, mas o arquivo "mDSS.out" não foi modificado por vários dias agora.
Não sei se é prático instalar um MTA. Eu suponho que é o Mail Transfer Agent.