Como podemos definir automaticamente o fuso horário padrão do sistema no Linux usando a Internet? A meu ver, os servidores NTP podem atualizar apenas o tempo, mas não o fuso horário. Existe algum servidor que possa alterar o fuso horário?
linux
networking
timezone
geolocation
Programador incorporado
fonte
fonte
Respostas:
Eu escrevi um programa há um tempo atrás que faz isso: tzupdate .
Você pode ver o que definiria seu fuso horário (sem realmente defini-lo) executando
tzupdate -p
:Você pode configurá-lo para real executando
tzupdate
como root.Isso funciona por:
/etc/localtime
para apontar para o arquivo zoneinfo para esse fuso horáriofonte
Este é um tópico antigo, mas ainda relevante para o kubuntu 1710, que não muda o fuso horário automaticamente. Estou usando a solução de Chris Down para o tzupdate, mas garantindo também que ele seja acionado quando o sistema tentar se conectar a uma rede (wifi ou outra). Isso pressupõe que você esteja usando o Network Manager.
Abra um terminal primeiro.
Instale o tzupdate
Em seguida, verifique se ele está acessível a todos os usuários
Teste se funciona
Precisamos, então, garantir que isso seja acessível a todos os usuários
que coloca você como root e depois verifica se o comando altera seu fuso horário. Depois, certifique-se de sair para retornar como usuário normal
Certifique-se de que o tzupdate possa ser executado com o sudo sem uma senha. Isso é necessário para uma etapa posterior quando acionamos isso do networkmanager, que executa isso em segundo plano. Digite isso em um terminal para editar o arquivo sudoers
Adicione esta linha no final do arquivo
Pressione CTRL-X e pressione Y e ENTER para salvar as alterações.
Depois, garantimos que o NetworkManager sempre chame isso depois de acionar uma alteração na conexão de rede (por exemplo, ao conectar a um wifi). Para isso, criamos um arquivo chamado tzupdate na pasta dispatcher.d que simplesmente chama sudo tzupdate. O arquivo precisa de permissões executáveis para executar
Observe que o NetworkManager chamará execute sudo (ou seja, sudo tzupdate), que normalmente solicitará uma senha.
Pode haver uma maneira melhor de fazer isso, ou seja, fazer com que o NetworkManager chame isso somente quando houver uma conexão ativa e não desativada (como o descrito acima) - tentei colocar o script em / etc / network / if-up .d mas isso não funcionou para mim
Para testar isso no Kubuntu - Altere o fuso horário local para outra coisa (vá para o plasmoid Date na barra de tarefas e clique com o botão direito do mouse e selecione 'Adjust Date / Time' e depois 'TimeZone' na guia)
Desligue o wifi e ligue-o novamente - você verá que, uma vez conectado ao wifi, ele espera cerca de 30 segundos e deve alterar o fuso horário com êxito.
Observe que isso não foi testado com wifi, onde é necessário digitar uma senha em uma página da web. Espero que o fato de isso ser executado no final de uma conexão de rede deva fornecer tempo suficiente para que um usuário insira credenciais - caso contrário, isso poderá precisar de ajustes adicionais (verifique se existe uma conexão, verifique se você consegue se conectar à Internet, aguarde por X segundos, se não conseguir se conectar à Internet, e tente novamente Y vezes
fonte
Não está claro o que você quer dizer com "atualização de fuso horário".
Unix e Linux mantêm o tempo como o número de segundos desde 1 de janeiro de 1970, 00:00 UTC. O relógio do sistema Unix é, portanto, independente do fuso horário. Os fusos horários não existem no kernel do Linux; é somente quando um aplicativo de espaço do usuário exibe o tempo em que o número de segundos desde 1970 é interpretado usando um fuso horário. Geralmente, essa interpretação é feita através das funções da biblioteca C. O fuso horário é selecionado pela
TZ
variável de ambiente. As definições de fuso horário (que consistem em um nome de fuso horário, offset do UTC, datas em que o horário de verão está em vigor e as compensações durante o horário de verão) fazem parte do GNU libc e geralmente são incluídas nas distribuições do Linux como um pacote "tzdata". Portanto, atualizar as definições de fuso horário é uma questão de correrapt-get upgrade
,yum update
ou alguma operação similar.Observe que alguns softwares, como Java, têm seus próprios arquivos de definição de fuso horário, que precisam ser atualizados separadamente.
O NTP mantém o controle do número de segundos desde 1º de janeiro de 1900, UTC . Portanto, o NTP, como o kernel do Unix, não tem conceito de fuso horário.
fonte