¿Cómo cambiar la zona horaria del usuario?

11

Sé que (por ejemplo, en Debian) se podría usar dpkg-reconfigure tzdatapara cambiar la zona horaria del sistema, pero me pregunto cómo se podría cambiar la zona horaria del usuario (si Linux / Unix admite tal idea).

Normalmente trabajo en el servidor de forma remota a través de ssh y dado que el servidor funciona con UTC internamente (archivos, ...) y las zonas horarias son bastante superficiales, me gustaría ver las horas en mi zona horaria deseada dependiendo de dónde me conecte. es posible?

Loax
fuente
¿Qué intentaste? ¿Incluso buscaste "ssh pasando información de TZ" en la web?
Anthon

Respuestas:

13

Utiliza la TZvariable de entorno. P.ej:

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

Los valores posibles para TZestán en el directorio /usr/share/zoneinfo(ver, por ejemplo, la existencia de /usr/share/zoneinfo/US/Pacific)

samiam
fuente
En mi caso, dateda un tiempo diferente y tiempo que uname -a. ¿Por qué sería eso?
Geremia
8

Primero, necesita algunas configuraciones para el servidor ssh y el cliente ssh.

En Servidor, en /etc/ssh/sshd_config, asegúrese de aceptar la TZvariable:

AcceptEnv LANG LC_* TZ

En Cliente, en /etc/ssh/ssh_configo ~/.ssh/config, asegúrese de enviar la TZvariable:

SendEnv TZ

(Los valores predeterminados generalmente son enviar ninguno desde el cliente y no aceptar ninguno en el servidor).

A continuación, hacer alias de sshcomando para utilizar su actual TZen sshsesión. Agregue esta línea al .bashrcarchivo:

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

o usar esto para el sistema no tiene /etc/timezone:

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

Luego, cada vez que vaya sshal servidor remoto, la hora en el servidor se mostrará en función de su zona horaria local.

Cuonglm
fuente
También puede usarlo TZ=$(date +%Z)con la mayoría de las versiones (Linux / * BSD / Solaris) de la fecha, esto funcionará mejor en sistemas donde /etc/timezoneno se hace lo correcto.
Sr.Spuratic
Recordatorio amistoso. Recuerde reiniciar sshd para que los cambios surtan efecto. En ubuntu "service ssh restart"
cabalgata del