Wie ändere ich die Benutzerzeitzone?

11

Ich weiß, dass man (zum Beispiel in Debian) dpkg-reconfigure tzdatadie Zeitzone des Systems ändern könnte , aber ich frage mich, wie man die Zeitzone des Benutzers ändern könnte (wenn Linux / Unix eine solche Idee überhaupt unterstützt).

Normalerweise arbeite ich über ssh remote auf dem Server. Da der Server intern mit UTC arbeitet (Dateien, ...) und die Zeitzonen eher oberflächlich sind, möchte ich die Zeiten in meiner gewünschten Zeitzone sehen, je nachdem, von wo aus ich eine Verbindung herstelle. Ist das möglich?

Scherz
quelle
Was hast du versucht? Haben Sie überhaupt im Web nach "ssh, das TZ-Informationen weitergibt" gesucht?
Anthon

Antworten:

13

Verwenden Sie die TZUmgebungsvariable. Z.B:

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

Die möglichen Werte für TZbefinden sich im Verzeichnis /usr/share/zoneinfo(siehe zum Beispiel das Vorhandensein von /usr/share/zoneinfo/US/Pacific)

Samiam
quelle
In meinem Fall dategibt eine andere Zeit-Zose und Zeit als uname -a. Warum sollte das so sein?
Geremia
8

Zunächst benötigen Sie einige Konfigurationen für den SSH-Server und den SSH-Client.

/etc/ssh/sshd_configStellen Sie in Server in sicher, dass Sie die TZVariable akzeptieren :

AcceptEnv LANG LC_* TZ

Stellen Sie im Client in /etc/ssh/ssh_configoder ~/.ssh/configsicher, dass Sie die TZVariable senden :

SendEnv TZ

(Die Standardeinstellungen sind normalerweise, keine vom Client zu senden und keine auf dem Server zu akzeptieren.)

Dann machen Sie Alias für sshBefehl Ihrer aktuellen verwenden TZin sshSitzung. Fügen Sie diese Zeile zur .bashrcDatei hinzu:

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

oder verwenden Sie dies für System hat nicht /etc/timezone:

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

Jedes Mal, wenn Sie sshzum Remote-Server wechseln, wird die Zeit auf dem Server basierend auf Ihrer lokalen Zeitzone angezeigt.

cuonglm
quelle
Sie können es auch TZ=$(date +%Z)mit den meisten aktuellen Versionen (Linux / * BSD / Solaris) verwenden. Dies funktioniert besser auf Systemen, auf denen dies /etc/timezonenicht der Fall ist.
mr.spuratic
Freundliche Erinnerung. Denken Sie daran, sshd neu zu starten, damit die Änderungen wirksam werden. Auf Ubuntu "Service SSH Neustart"
Cavalcade