시간 동기화 출력을 얻는 방법(서버의 시간대가 다름)?

시간 동기화 출력을 얻는 방법(서버의 시간대가 다름)?

따라서 시간대가 다른 약 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 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시간대를 찾는 데 사용됩니다 .

관련 정보