예, 올바른 방법이 있습니다. 로그를 전혀 지우지 않습니다 . 당신 은 그들을 회전 합니다. 회전에는 이전 N 로그 파일이 N 관련 파일 이름 세트로 유지 된 상태에서 동일한 이름으로 새 파일로 로그 출력을 전환하는 작업이 포함됩니다.
로그를 회전시키는 방법은 처음에 로그를 쓰는 방법에 따라 다릅니다. 이것은 종종 간과되는 요점입니다. 일부 로깅 프로그램은 로그 파일에 대해 열린 파일 설명자를 유지하므로 파일을 삭제해도 공간이 확보되지 않거나 실제로는 새로운 로그 파일로 출력을 전환하지 않는다는 점을 언급하면서 여기에 대한 답변 중 일부는 적어도 그것에 대해 언급합니다.
예를 들어, 로그 파일을 작성하는 프로그램 multilog
이 daemontools
패키지 에서 온 것이라면 수동 스크립트 나 cron
작업 없이 로그를 전혀 회전시키는 작업을 수행하지 않습니다 . 간단히 multilog
로그 출력이 디렉토리에 있다고 말하면 자동으로 회전되고 크기가 제한된 N 로그 파일 세트가 해당 디렉토리에 유지됩니다.
로그 파일을 작성하는 프로그램 이 다른 패키지 svlogd
의 runit
패키지 인 경우에도 동일하게 적용됩니다. 디렉토리에서 도구를 가리키는 것 외에는 아무것도하지 않습니다. 자체적으로 해당 디렉토리에 자동으로 회전하고 크기가 제한된 N 개의 로그 파일 세트를 유지합니다.
rsyslog
로그 파일을 작성 하는 데 사용 하는 경우 로그 파일이 특정 크기에 도달 한 후 중지하고 스크립트를 실행하면 로깅 프로그램에 지시 할 수 있습니다 . 실제로 로그 파일의 이름을 바꾸고 전체 크기 제한에 따라 오래된 로그 파일을 삭제하려면 스크립트의 핵심 요소를 작성해야하지만 최소한 로깅 프로그램은 파일을 닫고 로그 작성을 일시 중지했습니다.
여전히 syslog-ng 와 같은 프로그램을 로깅하고 여기에 다른 답변에서 언급 한 것과 같은 도구로 표시 되는syslogd
로그 회전 의 오래된 방법 은 다소 우연입니다. 정기적으로 로그 파일의 이름을 바꾸는 작업을 실행 하고 로깅 데몬을 다시 시작합니다 (실행중인 데몬 감독자 사용). 물론 이것의 문제는 전체 크기 제한을 강요하지 않는다는 것입니다. 느린 주에는 N 개의 매우 작은 일일 로그 파일을 얻을 수있는 반면, 바쁜 날에는 크기 제한을 훨씬 초과하는 1 개의 매우 큰 로그 파일을 얻을 수 있습니다. logrotate
djangofan
cron
나중에 더 나은 같은 도구 이유입니다 multilog
및 svlogd
파일 크기 구성 옵션이 실제로 로그 파일은 물론, 스스로 크기를 확인합니다. 세계는 cron
작업이나 logrotate
데몬 을 사용하여 일정에 따라 로그를 폴링하면 크기가 잘못되고 이러한 검사를 수행 할 수있는 적절한 장소가 남으므로 관리자가 정의한 크기 제한을 엄격하게 적용한다는 것을 알게되었습니다. 로그 파일은 파티션을 삼키지 않고 실제로 파일을 실제로 쓰는 프로그램에 있습니다.