![Linux 서비스에서 생성된 로그 파일의 크기를 제한하는 방법](https://linux55.com/image/121426/Linux%20%EC%84%9C%EB%B9%84%EC%8A%A4%EC%97%90%EC%84%9C%20%EC%83%9D%EC%84%B1%EB%90%9C%20%EB%A1%9C%EA%B7%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%ED%81%AC%EA%B8%B0%EB%A5%BC%20%EC%A0%9C%ED%95%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
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
참고: 저는 위 저장소의 관리자입니다. 솔루션을 공유하는 것뿐입니다.