Os trabalhos Cron executam 1 hora de folga, em total desacordo com os tempos do sistema

8

Exemplo de problema:

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

Os itens acima enviarão um e-mail para o usuário a cada minuto, mas todas as respostas "9" ocorrerão às 10:00 AM - > 10:59 AM, enquanto os "10" entrarão às 11:00 AM e às 11:59 AM.

Executando um trabalho de

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

Retornou a data e a hora esperadas (corretas). isso era verdade tanto para a UTC quanto para a hora local (América / Denver). Alterar este trabalho para executar a cada minuto em uma hora específica resulta no deslocamento (trabalhos relatados para executar em 9 corridas em 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 isso está desativado ou de alguma forma não concorda com minhas configurações locais (executadas 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 desligado por um segundo, mas isso não deve fazer com que minhas tarefas do cron executem uma hora inteira fora do horário, certo?

Também tenho certeza do seguinte:

  • O 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
  • Eu me certifiquei de que o serviço cron foi reiniciado? Sim
  • Eu reiniciei o serviço cron? Sim
  • 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

Debug atualizado:

Ran 'hwclock --systohc', mudanças não visíveis no comportamento. Ran 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 o 'cat / etc / sysconfig / clock' porque esse arquivo não existe. Executar um comando find sob o / etc / tree para encontrar 'clock' confirma que não tenho nenhum arquivo com esse nome.

Verificado para ver se qualquer coisa que conheço definiu a variável CRON_TZ. Não é definido no nível do usuário nem no nível das raízes. Faça com que o cron os faça ecoar sem saída.

    
por jmurrayufo 26.10.2016 / 18:56

1 resposta

2

Mais um lugar para procurar: o (s) script (s) start-at-boot para cron , ou o arquivo crontab do sistema old school /etc/crontab . É possível que a variável de ambiente TZ seja definida, digamos, em /etc/init.d/cronie ou /lib/systemd/system/crond.service , não tenho certeza do que o Debian usa para o sistema init.

Eu vi algo assim quando tentei ter crond executando as coisas a cada duas horas:

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

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

    
por 26.10.2016 / 19:16

Tags