Logs
如何獲得時間同步輸出(伺服器上的不同時區)?
所以想像一下有大約 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)是一場噩夢。