Cron jobs são executados com 1 hora de folga, em total desacordo com os horários do sistema

Cron jobs são executados com 1 hora de folga, em total desacordo com os horários do sistema

Exemplo de problema:

* 9 * * * echo 9
* 10 * * * echo 10

O acima irá disparar um e-mail para o usuário a cada minuto, mas todas as respostas "9" acontecerão às 10h -> 10h59, enquanto os "10" chegarão às 11h00-> 11h59 .

Executando um trabalho de

* * * * * /bin/date ; /bin/date -u

Retornou a data e hora esperadas (corretas). isso era verdade tanto para UTC quanto para a hora local (América/Denver). Alterar este trabalho para ser executado a cada minuto em uma hora específica resulta no deslocamento (trabalhos instruídos para serem executados às 9, executados às 10, etc.).

Depuração atual que concluí:

Ok, isso é estranho. Talvez meu arquivo de fuso horário esteja de alguma forma confuso? Vamos verificar isso

diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Files /etc/localtime and /usr/share/zoneinfo/America/Denver are identical

Verifiquei o relógio do hardware para ver se está desligado ou de alguma forma discorda das minhas configurações locais (executado 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 estar atrasado por um segundo, mas isso não deve fazer com que meus cron jobs sejam executados uma hora inteira fora do cronograma, certo?

Também tenho certeza do seguinte:

  • Meu fuso horário mudou recentemente?Não
  • Você tentou corrigir manualmente o fuso horário mesmo assim?Sim
  • Você redefiniu o cron depois de corrigir o fuso horário?Sim
  • Certifiquei-me 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:

Executei 'hwclock --systohc', sem alterações 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' porque este arquivo não existe. A execução de um comando find na árvore /etc/ para localizar 'clock' confirma que não tenho nenhum arquivo com esse nome lá.

Verifiquei se algo que eu saiba definiu a variável CRON_TZ. Não é definido no nível do usuário, nem no nível raiz. Fazer com que o cron faça eco deles não dá saída.

Responder1

Mais um lugar para procurar: o(s) script(s) de inicialização para cron, ou o arquivo crontab do sistema antigo da escola /etc/crontab. É possível que a variável de ambiente TZ seja definida, digamos, /etc/init.d/cronieou /lib/systemd/system/crond.service, não tenho certeza do que o Debian usa para o sistema init.

Eu vi algo assim quando tentei executar crondas coisas a cada duas horas:

0 */2 * * * /opt/dbms/rainstor/archiving/ama_term

crondexecutou o script em horas ímpares. Suspeitei, mas nunca provei a mim mesmo, que isso tinha a ver com uma confusão no horário de verão.

informação relacionada