
したがって、時間帯が異なる約100台のサーバーがあると想像してみてください(すべての時間帯は変わりませんが、多い)。サーバーログには、次の出力があります。
server1:BFE4C025 0420201413 P H sysplanar0 UNDETERMINED ERROR
server2:BFE4C025 0421032413 P H sysplanar0 UNDETERMINED ERROR
-> したがって、サーバー時間(別のタイムゾーン)にあります。 ->
0420201413 = 2013.04.20. 20:14
0421032413 = 2013.04.21 03:24
例: 0421032413 を 2013.04.21 03:24 に変換するのは簡単です。ただし、両方のサーバーでまったく同時に「date」コマンドを実行すると、サーバーの時間が変わります。
server1:Tue Apr 23 07:23:24 EDT 2013
server2:Tue Apr 23 13:23:24 MESZ 2013
わかりました。ただし、タイムゾーンが記載されているログ(数行/サーバーのみ)が必要です。なぜ?これは、CET TZなど、タイムゾーンで特定のイベントがいつ発生するのかを知るのが非常に便利なためです。
尋ねる:サーバーログ時間を中央ヨーロッパ時間に変換するには?
答え1
既存のシステムログファイルのみを変換したい場合は、小さなpython / perl / rubyプログラムを使用してTue Apr 23 07:23:24 EDT 2013
UTC(またはCET)の内容を変更できます。
ログファイルに書き込まれる時間形式をさらに制御するには、そのsyslog-ng
機能tsformat()
を使用してiso8601などの時間形式を設定できます。
私自身は5つのタイムゾーンのサーバーで作業する必要があるので、UTCタイムスタンプを使用することをお勧めします。夏時間は同時に開始されないため、PSTでCET(またはCEST)を追跡すること(またはすでにPDTの場合)は悪夢です。
答え2
これを使用してdate
日付タイムスタンプを印刷し、ログメッセージと共に保存できます。
$ TZ='Europe/Warsaw' date
wto, 23 kwi 2013, 17:11:48 CEST
$ TZ='America/Los_Angeles' date
wto, 23 kwi 2013, 08:11:56 PDT
$ date --universal
wto, 23 kwi 2013, 15:13:14 UTC
tzselect
タイムゾーンを見つけるために使用されます。