如何获取时间同步输出(服务器上的不同时区)?

如何获取时间同步输出(服务器上的不同时区)?

因此,想象一下大约有 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 很简单。但是:如果我在完全相同的时间在这两个服务器上发出“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 2013UTC(或 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查找时区。

相关内容