다음과 같은 로그 파일이 있습니다. 로그 파일은 다음으로 끝납니다.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
}
일치합니다카트리나.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에 지시합니다.