Exemplo de problema:
* 9 * * * echo 9
* 10 * * * echo 10
O texto acima dispara um e-mail para o usuário a cada minuto, mas todas as respostas "9" acontecem das 10h às 10h59, enquanto as "10" chegam das 11h às 11h59. .
Executando um trabalho de
* * * * * /bin/date ; /bin/date -u
Retornou a data e hora esperadas (corretas). isso era verdade tanto para o UTC quanto para o horário local (America / Denver). Alterar esse trabalho para executar a cada minuto em uma hora específica resulta no deslocamento (os trabalhos solicitados a serem executados às 9 são executados às 10, etc etc).
Depuração atual que concluí:
Ok, isso é estranho. Talvez meu arquivo de fuso horário esteja de alguma forma bagunçado? Vamos verificar se
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Files /etc/localtime and /usr/share/zoneinfo/America/Denver are identical
Eu verifiquei o relógio do hardware para ver se está desativado ou de alguma forma discorda das minhas configurações locais (execute como root).
date ; hwclock
Wed Oct 26 10:50:13 MDT 2016
Wed 26 Oct 2016 10:50:14 AM MDT -0.204171 seconds
Parece que está desligado por um segundo, mas isso não deve fazer com que meus trabalhos cron funcionem com uma hora de folga, certo?
Também tenho certeza do seguinte:
- Meu fuso horário mudou recentemente? Não
- Você tentou corrigir manualmente o fuso horário? sim
- Você redefiniu o cron depois de corrigir o fuso horário? sim
- Tenho certeza de que o serviço cron foi reiniciado? sim
- Eu reiniciei o serviço cron? sim
- Você tem certeza de que o cron foi reiniciado? 100% de certeza que o Cron foi reiniciado
Outras informações potencialmente relevantes:
Executando o Debian.
cat /etc/debian_version
8.6
Kernel atual
uname -a
Linux BigBox 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
Depuração atualizada:
Ran 'hwclock --systohc', alterações não perceptíveis no comportamento. Executei este comando para verificar
date;hwclock
Wed Oct 26 12:39:09 MDT 2016
Wed 26 Oct 2016 12:39:11 PM MDT -0.875328 seconds
Não consigo executar 'cat / etc / sysconfig / clock', pois esse arquivo não existe. A execução de um comando find na árvore / etc / para encontrar 'clock' confirma que não tenho nenhum arquivo com esse nome.
Verificado se alguma coisa que eu conheço definiu a variável CRON_TZ. Não está definido no nível do usuário nem no nível das raízes. Ter cron ecoá-los não dá saída.
hwclock --systohc
apenas por completude e adicione cat /etc/sysconfig/clock
à pergunta?
CRON_TZ
env var está definido em algum lugar?