SSHサーバーに最後に接続した現地時間をどのように知ることができますか?

SSHサーバーに最後に接続した現地時間をどのように知ることができますか?

海外旅行に行き、国内にあるSSHサーバーに接続します。以下で接続時間を確認できます。

last user
last | grep user

ただし、これら2つのコマンドによって提供される接続時間は、現地時間ではなく国時間に基づいています。現地時間に基づいて接続時間を取得するには?

ベストアンサー1

市内通話date +%Zdate +%: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

(ここでfoosumはbar3桁の文字列です。)

参考にしてください奇妙な:if(local)はorを設定する必要があることをdate +%:z伝えます。それがあなたに言うなら。+08:00TZ=foo-08:00TZ=foo-8-08:00TZ=foo+08:00


これはリモートシェルで設定できるため、セッション全体に影響しますTZexport

正しく読み取られた場合、変数がデーモンの環境()にある場合、man 1 sshサーバーはそれをユーザー環境に配置します。あなたのTZsshd地元の TZ自動的にサーバーを構成する必要があります。。 (さまざまなアイデアをテストする前に、ローカルが最初に設定されている場合TZとそうでない場合があることに注意してください。)

ローカルタイムゾーンをリモート側に渡すやや面倒な方法は、コマンド自体に変数の割り当てを含めることです。例:

# locally
ssh user@server "TZ='foo$(date +%:z | tr +- -+)' last"

date +%:z | tr +- -+ローカルで実行されます(tr特異性のため)。

おすすめ記事