ユーザーのタイムゾーンを変更するには?


11

私は(たとえばDebianで)システムdpkg-reconfigure tzdataのタイムゾーンを変更するために使用できることを知っていますが、ユーザーのタイムゾーンをどのように変更できるのか疑問に思っています(Linux / Unixがそのようなアイデアをサポートしている場合)。

私は通常、sshを介してリモートでサーバーで作業しますが、サーバーがUTCで内部的に動作し(ファイルなど)、タイムゾーンが表面的である場合、接続元に応じて希望のタイムゾーンで時間を確認したいと思います。これは可能ですか?


何を試しましたか?ウェブで「TZ情報を伝えるSSH」を検索したことはありますか?
Anthon

回答:


13

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参照)


私の場合、とdateは異なる時間帯と時間を与えuname -aます。なぜでしょうか?
Geremia

8

まず、sshサーバーとsshクライアントの設定が必要です。

サーバーので、変数/etc/ssh/sshd_configを受け入れることを確認しますTZ

AcceptEnv LANG LC_* TZ

クライアントで、/etc/ssh/ssh_configまたはで~/.ssh/configTZ変数を送信していることを確認します。

SendEnv TZ

(デフォルトでは通常、クライアントから何も送信せず、サーバーでは何も受け入れません。)

その後のエイリアスを作るsshあなたの電流を使用するコマンドTZsshセッション。次の行を.bashrcファイルに追加します。

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

またはシステムにこれを使用していない/etc/timezone

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

その後ssh、リモートサーバーにアクセスするたびに、サーバーの時刻がローカルタイムゾーンに基づいて表示されます。


TZ=$(date +%Z)日付のほとんどのバージョン(Linux / * BSD / Solaris)で使用することもできます。これは/etc/timezone、完了していないシステムでよりよく機能します。
mr.spuratic 2014

フレンドリーなリマインダー。変更を有効にするには、必ずsshdを再起動してください。ubuntuで「service ssh restart」
cavalcade
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.