Linux 서비스에서 생성된 로그 파일의 크기를 제한하는 방법

Linux 서비스에서 생성된 로그 파일의 크기를 제한하는 방법

Linux 서비스가 거대한 로그 파일을 생성하고 있습니다.

현재 나는 cron을 사용하여 제어하고 있습니다(X분마다 마지막 X 줄로 줄입니다).

*/5 * * * * root  echo "$(tail -n 1000 /var/log/XXX/logger_file.log)" > /var/log/XXX/logger_file.log

이 작업을 보다 깔끔하게 수행할 수 있는 다른 방법이 있습니까?

문자 클리핑이 크기 기반인 경우(즉, 마지막 1024바이트가 유지됨) 클리핑 후 첫 번째 줄이 손상될 수도 있습니다.

물론 서비스 자체를 조용하게 수정할 수는 없습니다.

답변1

로그 회전을 시도해 보셨나요?man logrotate

다음은 도움이 될 수 있는 가이드입니다.logrotate를 사용하여 로그 파일을 관리하는 방법

답변2

curtail은 다음 명령을 사용하여 프로그램 출력 크기를 제한하고 출력의 마지막 XKB(이 경우 200MB)를 유지합니다.

프로그램 실행 | 축소 -s 200M myprogram.log

https://github.com/Comcast/Infinite-File-Curtailer

참고: 저는 위 저장소의 관리자입니다. 솔루션을 공유하는 것뿐입니다.

관련 정보