나는 (예를 들어 데비안에서) 시스템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
현재를 사용하도록 명령의 별명을 만드 십시오 . 이 줄을 파일에 추가 하십시오.TZ
ssh
.bashrc
alias ssh='TZ=${TZ:-"$(cat /etc/timezone)"} ssh'
또는 시스템이없는 경우 이것을 사용하십시오 /etc/timezone
:
alias ssh='TZ=${TZ:-"$(date +%Z)"} ssh'
그런 다음 ssh
원격 서버에 접속할 때마다 서버의 시간이 현지 시간대를 기준으로 표시됩니다.