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.
CRON_TZ
env var está definido em algum lugar?hwclock --systohc
apenas por completude e adicionecat /etc/sysconfig/clock
à pergunta?Respostas:
Mais um lugar para procurar: o (s) script (s) de início na inicialização
cron
ou o arquivo crontab do sistema da velha escola/etc/crontab
. É possível que a variável de ambiente TZ seja definida, digamos,/etc/init.d/cronie
ou/lib/systemd/system/crond.service
, não tenho certeza do que o Debian usa para o sistema init.Vi algo assim quando tentei
crond
executar as coisas a cada duas horas:crond
executou o script em horas ímpares. Suspeitei, mas nunca me provei, que isso tivesse a ver com uma confusão no horário de verão.fonte
/etc/timezone
arquivo. TZ =cat /etc/timezone
. Esse arquivo parece estar correto (executou uma soma de verificação apenas para ter certeza de que é idêntico ao que deveria ser.). /lib/systemd/system/crond.service parece não querer modificar nenhuma variável TZ. Vou verificar a sugestão * / 2 para ver se estou vendo a mesma coisa.