Logs

如何獲得時間同步輸出(伺服器上的不同時區)?

  • April 23, 2013

所以想像一下有大約 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

將 ex.: 0421032413 轉換為 2013.04.21 03:24 是微不足道的。但是:再次伺服器時間不同,如果我在完全相同的時間在這兩個伺服器上發出“日期”命令:

server1:Tue Apr 23 07:23:24 EDT 2013
server2:Tue Apr 23 13:23:24 MESZ 2013

我明白了。但是我需要在一個時區中提到的日誌(只有那幾行/伺服器)。為什麼?因為知道你的時區什麼時候發生的事情非常有用,例如:CET TZ。

:如何將伺服器日誌時間轉換為中歐時間?

您可以使用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查找時區。

如果你只是想轉換現有的系統日誌文件,你可以使用一個小的 python/perl/ruby 程序來改變Tue Apr 23 07:23:24 EDT 2013一些 UTC(或 CET)的東西。

如果您想更好地控制寫入日誌文件的時間格式,您可能需要查看syslog-ng. 它的tsformat()功能允許您配置時間格式,例如iso8601。

我自己不得不使用 5 個時區的伺服器,我強烈建議使用 UTC 時間戳。夏令時沒有同時開始跟踪 PST 中的 CET(或 CEST)是什麼(或者它已經是 PDT)是一場噩夢。

引用自:https://unix.stackexchange.com/questions/73436