해외여행을 가다가 국내에 있는 SSH 서버에 접속합니다. 다음을 통해 연결 시간을 확인할 수 있습니다.
last user
last | grep user
하지만 이 두 명령이 제공하는 연결 시간은 현지 시간이 아닌 국가 시간을 기준으로 합니다. 현지 시간을 기준으로 연결 시간을 얻는 방법은 무엇입니까?
답변1
시내 전화 date +%Z
, date +%:z
( 참조 man 1 date
)아니면 다른 명령시간대를 알아보세요. 아니면 이미 알고 있을 수도 있습니다 Asia/Hong_Kong
. 그런 다음 서버에서 TZ
호출될 때 적절하게 설정하십시오 last
. 예:
# on server
TZ=Asia/Hong_Kong last
서버는 반드시시간대를 알아라. 또는:
# on server
TZ=foo-8 last
# or even
TZ=bar-08:45 last
(여기서 foo
sum은 bar
3자리 문자열입니다.)
참고하세요별난:if (local) 에서는 or 를 설정해야 한다고 date +%:z
알려줍니다 . 그것이 당신에게 말한다면 .+08:00
TZ=foo-08:00
TZ=foo-8
-08:00
TZ=foo+08:00
이를 원격 셸에서 설정할 수 있으므로 전체 세션에 영향을 줍니다 TZ
.export
올바르게 읽었다면 변수가 데몬의 환경()에 있으면 man 1 ssh
서버는 이를 사용자 환경에 배치합니다. 귀하의TZ
sshd
현지의 TZ
자동으로서버를 구성해야 합니다.. (다양한 아이디어를 테스트하기 전에 로컬이 TZ
먼저 설정될 수도 있고 그렇지 않을 수도 있다는 점에 유의하십시오.)
현지 시간대를 원격 측에 전달하는 다소 번거로운 방법은 명령 자체에 변수 할당을 포함시키는 것입니다. 예:
# locally
ssh user@server "TZ='foo$(date +%:z | tr +- -+)' last"
date +%:z | tr +- -+
로컬에서 실행됩니다( tr
특이사항으로 인해).
답변2
해당 국가의 서버에 로그인한 후 다음을 실행하세요.
export TZ=$(tzselect)
그리고 프롬프트를 따르세요. 현재 어느 대륙에 있는지, 어느 국가에 있는지, 그리고 더 자세한 정보를 물어볼 것입니다. 마지막으로 다음과 같은 것을 사용하고 있음을 알려줄 것이며 Europe/Madrid
대부분의 프로그램에서 사용하는 시간이 이제 PC 시간에 표시됩니다.
나중에 로그인하려면 다음을 사용하세요.
export TZ="Europe/Madrid"
문제를 피하기 위해. ~/.bashrc에 일정 기간 동안 머물고 싶다면 이 줄을 ~/.bashrc에 넣을 수 있습니다.