다음과 같은 로그 파일이 있습니다. 로그 파일은 다음으로 끝납니다.date
catalina.out.2014-02-01
catalina.out.2014-02-02
catalina.out.2014-02-03
catalina.out.2014-02-04
catalina.out.2014-02-05
catalina.out.2014-02-06
...
...
내 로그로레이트 구성
/opt/tomcat7.0/logs/catalina.* {
rotate 5
missingok
notifempty
size 5M
compress
copytruncate
}
계속해서 잘리는 부분은 다음을 참조하세요. (샘플)
catalina.out.2014-04-17-20140419.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz-20140421.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz-20140421.gz-20140422.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz-20140421.gz-20140422.gz-20140423.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz-20140421.gz-20140422.gz-20140423.gz-20140424.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz-20140421.gz-20140422.gz-20140423.gz-20140424.gz-20140425.gz
답변1
당신이 구성한 것은 logrotate
당신이 요청한 것을 수행하는 것입니다. 을(를) .*
다음으로 바꿔보세요 .out
.
/opt/tomcat7.0/logs/catalina.out {
rotate 5
missingok
notifempty
size 5M
compress
copytruncate
}
그렇지 않으면 이전 회전이 항상 포착될 것입니다. 왜냐하면 그것이 여러분이 구성한 것이기 때문입니다.
답변2
나는 또한 변경하는 것이 분명하다고 제안합니다 . 이는 일반적인 쉘 글로빙처럼 작동하므로 여러 번 .*
사용할 수 있습니다 ?
. *
다음과 같습니다:
/opt/tomcat7.0/logs/catalina.*.????-??-?? {
rotate 5
missingok
notifempty
size 5M
compress
copytruncate
}
그게 일치할 거야catalina.out.2014-02-06그리고 일치하지 않습니다catalina.out.2014-04-17-20140419.gz
여기에서도 좋은 팁이 있습니다https://superuser.com/a/255970/312809, logrotate 구성을 확인하는 방법:
logrotate -d -f /etc/logrotate.conf
-d = 디버그 모드를 켭니다. 디버그 모드에서는 로그나 logrotate 상태 파일이 변경되지 않습니다.
-f = 필요하지 않다고 생각하더라도 logrotate에게 회전을 강제하도록 지시합니다.