Quero alterar o fuso horário do relógio do sistema do terminal.
Isso pode ser feito com
tzselect
"que abre uma interface gráfica no terminal"
ou
sudo cp /usr/share/zoneinfo/Europe/London /etc/localtime
"que será definido como gmt"
Mas existe uma maneira de definir o fuso horário apenas com o deslocamento, ie.-1 ou +5 etc?
Preciso fazer isso enquanto escrevo um aplicativo para ajustar o tempo limite ou os logs de relatório, e as únicas informações que tenho são o IP do usuário. Posso usar um aplicativo da Web para encontrar a localização do IP, mas preciso definir o deslocamento, o que seria fácil se eu conseguisse obter o deslocamento do local, mas se precisar encontrar zona e cidade, seria uma dor real .
Se alguém souber a resposta de como acertar o relógio do sistema com +/- hora, seria ótimo.
Respostas:
Para alterar o fuso horário do terminal, basta pressionar Ctrl+ Alt+ Tno teclado para abrir o Terminal. Quando abrir, execute o (s) comando (s) abaixo:
Depois de aberto, basta seguir as telas para alterar o fuso horário.
fonte
Você também pode usar o novo
timedatectl
para definir o horário no 14.04.fonte
ls -R --group-directories-first /usr/share/zoneinfo
. (Cuidado para não modificar ou apagar nenhum arquivo aqui.) Mais informações sobreposix
eright
prefixos estão aqui .sudo timedatectl set-timezone Etc/UTC
para UTC.Você pode usar os arquivos GMT ± x em
/usr/share/zoneinfo/Etc
.fonte
/etc/timezone
.sudo dpkg-reconfigure --frontend noninteractive tzdata
Sei que esse segmento é um pouco antigo, mas eu estava procurando uma solução melhor, porque precisava definir automaticamente o fuso horário em uma VM depois que um usuário o baixa do nosso site e o implanta. Aqui está o que eu acabei com:
Isso consultará o geoip.ubuntu.com no servidor depois que ele for iniciado na nova rede (meu script verifica primeiro a conectividade) e depois define o fuso horário do servidor com base na resposta.
O "wget -q0 -" diz ao wget para enviar apenas os resultados ao stdout, que é então canalizado para a variável $ tz.
Espero que ajude alguém!
fonte
TL; DR
/etc/localtime
é um link simbólico que aponta para um arquivo em/usr/share/zoneinfo/Continent/City
. Ao alterar para onde aponta, você pode alterar seu fuso horário.Para alterar o fuso horário, remova o
/etc/localtime
link simbólico e atribua à sua cidade desejada. Por exemplo,ls -l /etc/localtime
relatórios que este arquivo aponta para/usr/share/zoneinfo/America/Denver
. Para mudar para Nova York, eu façosudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
A captura de tela abaixo mostra as etapas e a confirmação de
timedatectl
fonte
tzdata
, então sugerir a mesma coisa é inútil. Segundo,tzdata
faz praticamente o mesmo. Cabe ao usuário decidir o que prefere, para que não seja melhor nem pior - apenas a preferência de uma pessoa./var/lib/dpkg/info/tzdata.list
sugere que todos os itens/usr/share/zoneinfo
vêm com esse pacote, eu suponho que você precisa instalar o pacote para ter todos os itens, mas, francamente, não tenho certeza, além de não estar familiarizado com o modo como isso funciona em outros distribuições. Considere fazer isso como uma pergunta no Unix e Linux e sinta-se à vontade para fazer referência a este post se desejar fornecer um contexto para a pergunta.A maneira mais fácil de atualizar o fuso horário é usar
sudo dpkg-reconfigure tzdata
. Mas isso não é tão fácil de criar scripts.Se você deseja definir o fuso horário explicitamente por meio de um script (por exemplo, para configurar uma VM), aqui está uma receita:
Defina uma variável para o fuso horário desejado, por exemplo, um dos
Valores válidos são os diretórios e nomes de arquivos em
/usr/share/zoneinfo
.Então simplesmente
Observe que ambos
/etc/localtime
e/etc/timezone
devem ser consistentes.Provavelmente agora reinicie para atualizar todos os seus serviços (por exemplo, cron).
fonte
cp
para definir / etc / localtime. / etc / localtime é um link simbólico para o arquivo correto. Se você usarcp
essa alteração, irá na verdade derrotar o conteúdo de qualquer arquivo tzdata para o qual está apontando, de repente (por exemplo) o arquivo tzdata UTC contém dados de fuso horário para Europa / Londres em vez de UTC, o que é ruim (e irritante) para solucionar problemas, como eu posso dizer por experiência pessoal)Aqui está o método que eu uso, que é centrado nos EUA, pois não preciso me preocupar com fusos horários fora dos EUA.
Se eu precisar determinar o fuso horário atual, eu também:
ou
Eu faço então:
Onde
<_designation_>
é um dos seguintes:EUA / Leste
dos EUA / EUA Central
/ Montanha
EUA / Pacífico
EUA / Alasca
EUA / Aleutian
EUA / Arizona
EUA / Leste-Indiana
EUA / Havaí
EUA / Indiana-Starke
EUA / Michigan
EUA / Pacífico-Novo
EUA / Samoa
POR EXEMPLO:
Outras designações de fuso horário podem ser encontradas aqui: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
fonte
tzselect
é uma boa maneira de obter a seqüência fuso horárioVocê não pode fazer isso, a menos que selecione o arquivo de fuso horário que deseja corresponder a cada deslocamento de fuso horário.
Algumas respostas sugeriram o uso dos arquivos em / usr / share / zoneinfo / Etc, mas o problema é que eles são agnósticos de horário de verão.
Portanto, a menos que você escolha alguma configuração de fuso horário para corresponder a cada deslocamento ou não se preocupe com o horário de verão, não há como fazê-lo genericamente.
fonte