Wiem, że (na przykład w Debianie) można użyć dpkg-reconfigure tzdata
do zmiany strefy czasowej systemu, ale zastanawiam się, jak można zmienić strefę czasową użytkownika (jeśli Linux / Unix w ogóle obsługuje taki pomysł).
Zwykle pracuję na serwerze zdalnie przez ssh i biorąc pod uwagę, że serwer współpracuje z UTC wewnętrznie (pliki, ...), a strefy czasowe są raczej powierzchowne, chciałbym zobaczyć czasy w wybranej strefie czasowej w zależności od tego, z którego się łączę. czy to możliwe?
ssh
not-root-user
timezone
Loax
źródło
źródło
Odpowiedzi:
Użyj
TZ
zmiennej środowiskowej. Na przykład:Możliwe wartości dla
TZ
znajdują się w katalogu/usr/share/zoneinfo
(patrz na przykład istnienie/usr/share/zoneinfo/US/Pacific
)źródło
date
podaje inną strefę czasową i czas niżuname -a
. Dlaczego miałoby to być?Po pierwsze potrzebujesz konfiguracji dla serwera ssh i klienta ssh.
W Server, w
/etc/ssh/sshd_config
, upewnij się, że akceptujeszTZ
zmienną:W kliencie, w
/etc/ssh/ssh_config
lub~/.ssh/config
upewnij się, że wysyłaszTZ
zmienną:(Domyślne ustawienia to zazwyczaj brak wysyłania żadnego z klienta i brak akceptacji na serwerze).
Następnie zrobić alias dla
ssh
polecenia używać prąduTZ
wssh
sesji. Dodaj tę linię do.bashrc
pliku:lub użyj tego, jeśli system nie ma
/etc/timezone
:Następnie za każdym razem
ssh
, gdy przechodzisz na serwer zdalny, czas na serwerze będzie wyświetlany na podstawie Twojej lokalnej strefy czasowej.źródło
TZ=$(date +%Z)
z większością aktualnych wersji (Linux / * BSD / Solaris), będzie to działać lepiej na systemach, na których/etc/timezone
nie jest to zrobione.