Por que o $ date ainda está exibindo o EST quando o / etc / localtime é linkado simbolicamente para / usr / share / zoneinfo / GMT?

3

Estou com um problema ao definir a data no meu servidor ...

$ ls -la /etc | grep localtime
lrwxrwxrwx  1 root root  23 Mar 6  12:07 /etc/localtime -> /usr/share/zoneinfo/GMT

Por alguma razão, embora o tempo 17:31:06 seja GMT, o sufixo do fuso horário é EST ...

$ date
Tue Mar  6 17:31:06 EST 2012

E o relógio do hardware também está bagunçado - 10:32:12 não é o EST:

$ hwclock --show
Tue 06 Mar 2012 10:32:12 PM EST  -0.000276 seconds

Se eu definir o hwclock para a hora do sistema ou a hora local, ele será definido incorretamente:

$ hwclock --localtime
Tue 06 Mar 2012 10:34:22 PM EST  -0.000190 seconds
$ date
Tue Mar  6 17:34:24 EST 2012

Alguma ideia do que está acontecendo?

Obrigado

    
por Tom 06.03.2012 / 18:35

2 respostas

1

O problema era configurar o hwclock para a hora do sistema e vice-versa (o que eu estava mexendo) realmente modificava os arquivos de fuso horário em / usr / share / zoneinfo. Eu tive que copiar arquivos frescos de zoneinfo de outro servidor.

Então, tudo o que posso dizer é: NÃO JOGUE configurando o relógio do sistema para o relógio do hardware e vice-versa ( hwclock --hctosys , hwclock --systohc ) a menos que você saiba o que está fazendo!

    
por 11.05.2012 / 23:21
6

Três regras simples para não enlouquecer ao lidar com o tempo:

Primeiro: Você está executando o Unix (e presumivelmente o NTP): Certifique-se de ter configurado o relógio do BIOS / Hardware do seu sistema para UTC . A última coisa que você precisa é do seu relógio de hardware (BIOS) lutando com o Unix, cujo fuso horário está correto e quando o horário de verão começa / termina. Definir o relógio do seu hardware para o UTC facilita muito a vida.

Segundo: Quando você altera o fuso horário do sistema, às vezes você precisa efetuar logout e efetuar login novamente para que o sistema entenda o que aconteceu. Geralmente eu sugiro reiniciar - isso garante que todas as partes do sistema operacional tenham sido chutadas na cabeça e entendam o que aconteceu. Você não quer que o cron ainda esteja em execução no horário dos EUA / Leste quando você mudou o fuso horário da máquina para o Havaí.

Terceiro: Se a sua conta de usuário ainda tiver uma idéia confusa do fuso horário, algo provavelmente está configurando a variável de ambiente TZ - verifique seus arquivos .profile e shell rc.
O Unix não assume que todos os usuários no sistema estejam no fuso horário local, portanto, permite que você substitua em um nível por usuário (ou por shell). Isso é muito útil se o sistema estiver sendo executado (por exemplo, horário da costa dos EUA) e você tiver usuários fazendo login no Japão. Pessoas como o horário em que o sistema reporta para corresponder ao relógio na parede:)

    
por 06.03.2012 / 18:49