Como alterar o fuso horário do usuário?

11

Eu sei que (por exemplo, no Debian) pode-se usar dpkg-reconfigure tzdata para mudar o fuso horário do sistema mas eu estou querendo saber como alguém poderia mudar o fuso horário usuário (se o Linux / Unix suportar tal idéia).

Eu normalmente trabalho no servidor remotamente através do ssh e dado que o servidor trabalha com UTC internamente (arquivos, ...) e fusos horários são bastante superficiais, eu gostaria de ver os horários no meu fuso horário desejado dependendo de onde eu estou conectando de. Isso é possível?

    
por Loax 03.03.2014 / 09:26

2 respostas

13

Use a variável de ambiente TZ . Por exemplo:

bash$ export TZ=US/Pacific
bash$ date
Mon Mar  3 00:31:17 PST 2014
bash$ export TZ=US/Eastern
bash$ date
Mon Mar  3 03:33:06 EST 2014

Os valores possíveis para TZ estão no diretório /usr/share/zoneinfo (veja, por exemplo, a existência de /usr/share/zoneinfo/US/Pacific )

    
por 03.03.2014 / 09:34
8

Primeiro, você precisa de algumas configurações para o servidor ssh e o cliente ssh.

No servidor, em /etc/ssh/sshd_config , certifique-se de aceitar TZ variable:

AcceptEnv LANG LC_* TZ

No cliente, em /etc/ssh/ssh_config ou ~/.ssh/config , certifique-se de enviar a variável TZ :

SendEnv TZ

(Os padrões são geralmente para não enviar nenhum do cliente e aceitar nenhum no servidor.)

Em seguida, crie o alias para o comando ssh para usar sua sessão atual TZ in ssh . Adicione esta linha ao arquivo .bashrc :

alias ssh='TZ=${TZ:-"$(cat /etc/timezone)"} ssh'

ou use isso para o sistema não tem /etc/timezone :

alias ssh='TZ=${TZ:-"$(date +%Z)"} ssh'

Então, toda vez que você ssh acessar o servidor remoto, a hora no servidor exibirá a base no seu fuso horário local.

    
por 03.03.2014 / 09:59