Qual é o fuso horário padrão em um Linux típico (se houver)?

1

Estou administrando um sistema operacional Linux do CentOS 6.

Desejo remover todas as informações explícitas de fuso horário onde essas informações podem causar qualquer coisa, exceto o fuso horário UTC do sistema. Isso ocorre porque é um modelo de uma máquina virtual e também porque foi decidido que o fuso horário padrão é UTC.

Preciso alterar o arquivo /etc/sysconfig/clock (suponho que essa seja uma entidade de configuração específica do CentOS) ou /etc/localtime ou ambos? Posso remover os dois, e ele retornará ao UTC ou a outros padrões intrínsecos? Eu simplesmente não consigo encontrar documentação sobre como o sistema se comporta sem esses arquivos, por exemplo. Ou talvez eu também não deva remover, mas por que há uma preferência de fuso horário distribuída em dois arquivos? A menos que tenha um significado ligeiramente diferente em cada um deles?

Eu posso testar empiricamente, claro, mas eu posso mudar a distro no futuro, e então terei outro fuso horário novamente, enquanto meus scripts tentam capturar compatibilidade neutra-distro.

    
por amn 21.04.2015 / 10:20

2 respostas

4

O fuso horário padrão não é fuso horário, ou seja, hora UTC. Não há informações sobre a zona codificada, pois ela pode se tornar incorreta / obsoleta rapidamente.

O relógio do kernel sempre roda no UTC (ou pelo menos o que pensa é o UTC). Por padrão, ele espera ler a hora UTC do relógio de hardware (RTC), mas permite que o processo de inicialização especifique o deslocamento correto da "hora local", já que a maioria dos PCs mantém a hora local no RTC.

O espaço do usuário trabalha com registros de data e hora "época" baseados em UTC, mas lê /etc/localtime ou a variável de ambiente $TZ ao exibir as datas. Se nenhum dos dois existir, você receberá o UTC.

Você também pode defini-los explicitamente como "UTC" ou "Etc / UTC" se quiser (por exemplo, export TZ=UTC para substituir temporariamente a zona do sistema).

Algumas distribuições dividem a configuração, pois os próprios arquivos zoneinfo não têm o nome da zona, portanto, quando o administrador copiou /usr/share/zoneinfo/Europe/London to /etc/localtime , não é mais possível saber que era "Europe / London".

Por exemplo, o nome é necessário ao mostrar a zona atual nas telas de configuração ou ao atualizar o arquivo localtime em cada inicialização (ele precisa ser copiado para / etc novamente sempre que o time zoneinfo for atualizado).

Outras distribuições resolvem isso ligando simbolicamente o arquivo zoneinfo e lendo o destino do symlink. Isso, no entanto, precisa de /usr para ser montado muito cedo, o que não é apreciado por graybeards.

Os arquivos de configuração não são portáteis; /etc/sysconfig é específico da Red Hat (o Debian tem /etc/default ). No entanto, em sistemas systemd , a abordagem do link simbólico é sempre usada, e há uma ferramenta timedatectl set-timezone para alterá-la.

    
por 21.04.2015 / 10:38
1

Na minha linha de trabalho, as máquinas movimentam-se fisicamente ao redor do mundo de tempos em tempos, portanto, a associação com um fuso horário só causaria problemas.

O que eu faço, como também sou um grande fã da UTC, é definir o fuso horário para Reykjavik. Isso resulta em UTC +0, sem esse DST irritante.

O que você faz para alterar isso quando necessário é fazer o symlink /etc/localtime para qualquer definição de fuso horário adequada em /usr/share/zoneinfo/ . Eu não tenho certeza se isso é específico do CentOS, nós apenas usamos muitos servidores CentOS.

    
por 21.04.2015 / 10:35