2016-09-16 15 views
0

私たちは複数のサーバーと、クラウドサーバー上のデータベースを実行しています。 JVMがCESTで動作する必要があるUTC時間で動作しているので、JVMは2時間遅れているようです。CentOSサーバーでJVMロケールの問題を修正するにはどうすればよいですか?

私は、サーバーにsshとdateを実行すると、私は以下の取得:

Fri Sep 16 09:21:16 CEST 2016 

当社のデータベースには、システム時刻に設定され、それは上記と同じ(正しい)の時間を持っています。 これはまさに私が期待しているものです。
Log4j2をロガーとして使用しているMy Javaサーバーのログファイルを見ると、ログメッセージのTimestampsは正常です(タイムゾーンはlog4j2.xmlファイルに設定されています)。ただし、サーバー自体から出力された日付はオフです。 log4j2設定ファイルからタイムゾーンを削除すると、デフォルトでUTCに設定されます。

しばらくの間、上記を見た後、私は、「ロケール」コマンドを実行し、次のように得た:

LANG=en_US.UTF-8 
LC_CTYPE="en_US.UTF-8" 
LC_NUMERIC="en_US.UTF-8" 
LC_TIME="en_US.UTF-8" 
LC_COLLATE="en_US.UTF-8" 
LC_MONETARY="en_US.UTF-8" 
LC_MESSAGES="en_US.UTF-8" 
LC_PAPER="en_US.UTF-8" 
LC_NAME="en_US.UTF-8" 
LC_ADDRESS="en_US.UTF-8" 
LC_TELEPHONE="en_US.UTF-8" 
LC_MEASUREMENT="en_US.UTF-8" 
LC_IDENTIFICATION="en_US.UTF-8" 
LC_ALL= 

これは明らかに間違っています。
ライブサーバーでこれを変更する前に、テストサーバー上のlocale.confファイルを変更してリブートし、変更がどうなるか確認しました。彼らはしなかった。テストサーバーで実行されているJavaサーバーは、変更を加える前と同じ時間でした。

私はここで何が欠けていますか? これらのサーバーはサーバー上でサービスとして実行され、独自のユーザーとグループがあります(関連性があるかどうかわかりません)。

ご協力いただければ幸いです。

答えて

0

サーバー上のtimezoneはロケール設定によって制御されません。jvmはシステムクロックから時間がかかります。これは別のものです。 このコマンドは、私のために問題を解決:

また
sudo timedatectl set-timezone Europe/Stockholm 

、私はserverfaultの上で受信this detailed answerを参照してください。

関連する問題