海外旅行に行き、国内にあるSSHサーバーに接続します。以下で接続時間を確認できます。
last user
last | grep user
ただし、これら2つのコマンドによって提供される接続時間は、現地時間ではなく国時間に基づいています。現地時間に基づいて接続時間を取得するには?
ベストアンサー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
特異性のため)。