Eu tentei eliminar muitos dos erros comuns,
garantindo que os PATHs estejam disponíveis para cron
existe uma linha final no final do arquivo crontab
o fuso horário é configurado por:
cd /etc cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
Executando date
no bash, recebo:
Tue Sep 17 15:14:30 SGT 2013
Para verificar se o cron está usando o mesmo horário,
* * * * * date >> date.txt
está fornecendo a mesma data em date.txt.
Este é o script que estou tentando executar:
event.sh
:
#!/usr/bin/env bash
echo data > /root/data.txt
Usando crontab -e
, a linha abaixo funciona,
* * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
15 * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
No entanto, quando tentei outros argumentos, esperava que fosse executado às 14h:
50 14 * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
ou
50 14 * * * (cd /root ; ./event.sh >/tmp/debug.log 2>&1)
isso não funcionará mais. Parece que há um problema com o meu argumento da hora. Nada foi encontrado no /tmp/debug.log
arquivo também.
SOLUÇÃO:
Acabou que eu tenho que reiniciar o serviço cron depois de fazer alterações no TZ.
* * * * * /bin/bash /root/event.sh >/tmp/debuge.log 2>&1
* * * * * date
e confirme que date
mostra a hora esperada. Note que definir a variável de ambiente TZ de dentro do crontab pode não afetar o fuso horário como usado pelo cron daemon em si, mas vai afetar os processos lançados através de cron, por isso, se você definir TZ no seu crontab eu sugiro comentando-lo temporariamente e definindo o tempo usando fuso horário do relógio do sistema (provavelmente UTC se você está-boot único Linux, mas pode ser hora local) em seu lugar.
~/event.sh
tentar com/home/username/event.sh