(Debian/Ubuntu) 로그는 /var/log/
다음과 같이 저장됩니다.
x.log
x.log.1
x.log.2.gz
...
커널 로그, 시스템 로그 등
나는 로그 정보가 커짐에 따라 (모든 것을 하나의 파일에 보관하는 대신) 더 작은 파일로 분할하여 저장한다는 것을 발견했습니다. 두 번째 파일( x.log.1
)이 왜 압축되지 않았는지 알고 싶습니다 . 이것이 최신 로그에 더 쉽게 액세스하는 것과 관련이 있을 수 있습니까?
답변1
동의합니다. 이렇게 하면 최근 파일에 더 쉽게 액세스할 수 있습니다. 어쨌든 실제 동작은 delaycompress
다음과 같은 logrotate 지시문을 통해 결정됩니다.
회전할 때는 파일을 압축하지 말고 다음에는 압축하세요
역사적인 이유는 logrotate 매뉴얼에서 찾을 수 있습니다:
Postpone compression of the previous log file to the next rotation
cycle. This has only effect when used in combination with compress.
It can be used when some program can not be told to close its logfile and
thus might continue writing to the previous log file for some time.
답변2
예, 이는 최신 로그 파일에 더 쉽게 액세스할 수 있도록 하기 위한 것입니다. logrotate 옵션이 delaycompress
이를 제어합니다. logrotate 맨페이지에서:
지연된 압축
Postpone compression of the previous log file to the next rotation cycle. This only has effect when used in combination with compress. It can be used when some program cannot be told to close its logfile and thus might continue writing to the previous log file for some time.
답변3
간단히 말해서, 아니요, 최신 로그에 더 쉽게 접근할 수 있도록 하려는 것과는 아무런 관련이 없습니다.
대신 데몬은 이름을 바꾼 후에도 로그 파일에 계속 기록하는 경우가 많으며 때로는 오랜 시간 동안 기록됩니다.
로그 파일이 압축되면(기본적으로 새 파일이 기록되고 이전 파일이 삭제됨을 의미함) 로그 파일이 최종적으로 닫히면 원본(현재 삭제된) 파일에 이후에 기록된 모든 내용이 손실됩니다.
때로는 데몬 프로세스가 "중단"되어 로그 파일 닫기를 거부할 수도 있습니다. 이런 일이 발생하면 다음이 표시될 수 있습니다.
$ pid=$(pidof your_daemon)
$ ls -l /proc/$pid/fd/* | grep log
l-wx------ 1 root root 123456789 Jan 10 17:54 /proc/1234/fd/6 -> /var/log/your_daemon.log (deleted)
$ ls -lL /proc/$pid/fd/6 /var/log/your_daemon.log
-rw-r----- 0 root root 123456789 Jan 10 17:54 /proc/1234/fd/6
-rw-r----- 1 root root 0 Jan 10 01:04 /var/log/your_daemon.log
$ cmp /proc/$pid/fd/6 <( gunzip < /var/log/your_daemon.log.2.gz )
cmp: EOF on /dev/fd/63
/proc/$pid/fd/6
여전히 열려 있고 작성 중이지만 링크 수는 다음과 같습니다.0- 그것은 있다아니요파일 시스템의 이름/var/log/your_daemon.log
비어 있음(크기0) 아무것도 기록되지 않았기 때문입니다./var/log/your_daemon.2.gz
압축이 완료되면 로그의 압축된 복사본입니다. 해당 내용은 잘릴 때까지 열려 있는 로그 파일과 동일합니다.
열려 있지만 연결되지 않은 로그 파일이 닫히면 잘린 부분 이후의 모든 콘텐츠는 영구적으로 손실됩니다.