사용자 시간대를 변경하는 방법은 무엇입니까? tzdata 의 시간대를 변경하는

나는 (예를 들어 데비안에서) 시스템dpkg-reconfigure tzdata 의 시간대를 변경하는 데 사용할 수 있지만 사용자 시간대를 변경하는 방법이 궁금합니다 (Linux / Unix가 그러한 아이디어를 전혀 지원하지 않는 경우).

나는 일반적으로 ssh를 통해 원격으로 서버에서 작업하고 서버가 UTC로 내부적으로 작동하고 (파일, …) 시간대가 다소 피상적이라고 가정하면 연결 위치에 따라 원하는 시간대의 시간을보고 싶습니다. 이게 가능해?



답변

TZ환경 변수를 사용하십시오 . 예 :

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

가능한 값 TZ은 디렉토리에 있습니다 /usr/share/zoneinfo(예 :의 존재 여부 참조 /usr/share/zoneinfo/US/Pacific).


답변

먼저 ssh 서버 및 ssh 클라이언트에 대한 구성이 필요합니다.

의 서버에서 변수 /etc/ssh/sshd_config를 허용하는지 확인하십시오 TZ.

AcceptEnv LANG LC_* TZ

클라이언트에서 /etc/ssh/ssh_config또는 ~/.ssh/config에서 TZ변수 를 보내야 합니다.

SendEnv TZ

(기본값은 일반적으로 클라이언트에서 아무것도 보내지 않고 서버에서는 아무것도받지 않는 것입니다.)

그런 다음 세션 에서 ssh현재를 사용하도록 명령의 별명을 만드 십시오 . 이 줄을 파일에 추가 하십시오.TZssh.bashrc

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

또는 시스템이없는 경우 이것을 사용하십시오 /etc/timezone:

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

그런 다음 ssh원격 서버에 접속할 때마다 서버의 시간이 현지 시간대를 기준으로 표시됩니다.