Linux 로그 파일은 일광 절약 시간을 어떻게 처리합니까? 롤백하면 순서가 지정되지 않은 값을 얻을 수 있을 뿐만 아니라 중복된 값을 얻을 수도 있습니다.
시스템 시간을 UTC로 설정한 다음 로그 파일 뷰어에 전달하기 전에 로그 파일을 현지 시간대로 처리해야 한다고 생각합니다.
답변1
로그 파일은 끝에 각 줄이 추가된 일반 텍스트 파일입니다. 따라서 UTC가 아닌 시간대를 사용해도 데이터 손실이 없습니다.
물론 파일을 보기 위해 잠재적으로 혼란스러운 도구를 사용하고 있을 수도 있습니다. 그러나 UTC를 사용하는 일반적인 이유는 모호성을 피하기 위한 것입니다. 즉, 데이터를 해석하기 위해 현지 시간대를 알 필요가 없습니다.
그렇습니다. 로그 파일에서 UTC를 사용하는 것은좋은 것, 그리고자주 한다하지만 이렇게 하지 않으면 로그 파일의 데이터가 손실되지 않습니다.
답변2
로그 파일은 시간대를 "처리"하지 않으며 일부 애플리케이션이나 서비스가 시간대에 기록한 내용만 기록합니다. 따라서 애플리케이션이 "메시지만 작성"하고 "로그 파일에 직접 작성"한다면 운이 없는 것입니다.
일부 syslog 서버(예: syslog-ng)에서는 타임스탬프로 "원시" 로그 데이터를 "장식"할 수 있습니다.너UTC 또는 현지 시간(오프셋 포함 또는 제외)을 사용하도록 선택할 수 있습니다.
표준 출력 로깅과 syslog 서비스 간의 중개자로 사용할 수 있는 로깅 프로그램(예: 로거)도 있습니다.
답변3
로그 파일은 ISO 8601 또는 그 사촌인 RFC 3339와 같은 시간 형식을 사용할 수 있으며 UTC에 대한 조정으로 현지 시간을 표시합니다.
시간 항목이 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 초 전 )에서 시작하여 32비트 나노초를 계산하는 64비트 초에 지나지 않습니다 .
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 안녕하세요! 제드 BP%
시간대 및 DST 변경은 다음에 영향을 미치지 않습니다.내 거"리눅스 로그 파일", 내가 원하는 시간대에 로그 파일을 읽을 수 있습니다. ( sort
' 옵션을 사용하여 여러 로그 파일을 하나로 병합하고 정렬 할 수도 있습니다 -m
.)