Linux 로그 파일은 일광 절약 시간을 어떻게 처리합니까? 대체하면 순서가 잘못된 값이 나올 뿐만 아니라 값이 중복될 수도 있습니다.
저는 시스템 시간을 UTC로 설정한 다음 로그 파일 뷰어에 전달하기 전에 로그 파일을 현지 시간대로 처리해야 한다고 생각하고 있습니다.
답변1
로그 파일은 일반 텍스트 파일이며 각 줄은 끝에 추가됩니다. 따라서 UTC가 아닌 시간대를 사용해도 데이터 손실이 없습니다.
물론, 혼동될 수 있는 도구를 사용하여 파일을 볼 수도 있습니다. 그러나 UTC를 사용하는 일반적인 이유는 모호성을 피하기 위한 것입니다. 즉, 데이터를 해석하기 위해 현지 시간대를 알 필요가 없습니다.
그렇습니다. 로그 파일에서 UTC를 사용하는 것은좋은 것, 그리고자주 하는 일하지만 이렇게 하지 않으면 로그 파일의 데이터가 손실되지 않습니다.
답변2
로그 파일은 시간대를 "처리"하지 않으며 일부 애플리케이션이나 서비스가 시간대에 기록한 내용만 기록합니다. 따라서 애플리케이션이 "메시지만" 쓰고 "로그 파일에 직접" 쓴다면 운이 없는 것입니다.
일부 syslog 서버(예: syslog-ng)에서는 타임스탬프를 기준으로 "원시" 로그 데이터를 "장식"할 수 있습니다.너오프셋 유무에 관계없이 UTC 또는 현지 시간을 사용하도록 선택할 수 있습니다.
또한 stdout 로깅과 syslog 서비스의 중간 역할로 사용할 수 있는 로깅 프로그램(예: 로거)도 있습니다.
답변3
로그 파일은 ISO 8601 또는 UTC 조정으로 현지 시간을 표시하는 사촌 RFC 3339와 같은 시간 형식을 사용할 수 있습니다.
시간 항목이 Z로 끝나거나 하이픈(8601), 마이너스 또는 플러스 뒤에 오프셋 값이 오는 경우 UTC 기반 형식을 사용하는 것입니다.
로그가 UTC를 기반으로 하는 경우 일광은 오프셋 변경으로 표시됩니다. 오프셋을 사용하면 현지 시간과 일광을 모호함 없이 표시할 수 있습니다.
시계가 조정되면 후속 항목의 시간이 여전히 겹칠 수 있습니다.
답변4
다른 사람들이 설명했듯이 로그 파일의 특성상 사용자가 얻을 수 없는 것은고장난타임스탬프에 무슨 일이 일어나든 상관없습니다. 당신이 예상하는 문제는모호여기서 잘못 선택된 타임스탬프 메커니즘은 단일 시점을 고유하게 나타내지 않습니다.
이로 인해 가난한 시스템 관리자가 로그를 읽고 상황이 언제 발생했는지 파악하기가 어렵습니다. 사실, 타임스탬프만 있는 로그 항목은 Apr 3 02:14:57
그것이 현지 시간인지 UTC인지를 나타내지 않으며, (예를 들어 현지 시간, 특히 호주 동부 시간이라고 가정할 때) 02인지도 나타내지 않습니다. :14:57 AEST 또는 02:14:57 AEDT.
그러나 이는 "Linux 로그 파일"과 같은 것이 하나만 존재한다고 부당하게 가정하는 것입니다. 모든 로그 파일이 동일한 방식으로 작동하는 것은 아니며 사람들은 1980년대부터 이러한 유형의 타임스탬프에서 멀어지고 있습니다.
예를 들면 다음과 같습니다: daemontools와 그 유사 제품을 수년 동안 사용해 온 우리는리눅스 로그 파일TAI64N 타임스탬프를 사용합니다. 로그 항목은 다음과 같습니다.
@40000000577d024d2d10bb6d 안녕하세요!
16진수의 긴 문자열은 TAI64N 타임스탬프입니다. 아주 먼 과거(국제 원자시 1970-01-01 00:00:00 전 2 62 초) 이후의 64비트 초 수와 32비트 수의 나노초에 지나지 않습니다 .
TAI에는 다양한 시간대 변형이 없습니다. "도약" 초가 반복되지도 않습니다. 매초마다 고유한 고정 숫자가 있습니다.
실제로 이러한 타임스탬프를 사람이 읽을 수 있는 현지 시간으로 처리하는 것이 바로 프로그램의 작업입니다 tai64nlocal
.
jdebp % echo @40000000577d024d2d10bb6d 안녕하세요\! | TZ=UTC0 tai64nlocal 2016-07-06 13:05:45.756071277 안녕하세요! jdebp % echo @40000000577d024d2d10bb6d 안녕하세요\! | TZ=PST8PDT tai64nlocal 2016-07-06 06:05:45.756071277 안녕하세요! jdebp %
시간대 및 DST 변경은 다음에 영향을 미치지 않습니다.나의"Linux 로그 파일"을 사용하면 원하는 시간대에서 로그 파일을 읽을 수 있습니다. ( sort
'의 옵션을 사용하면 여러 로그 파일을 하나로 병합 정렬하는 등의 작업도 수행할 수 있습니다 -m
.)