매시간 자체 로그 파일을 회전시키는 애플리케이션이 있습니다. 매시간 n
며칠이 지난 모든 파일을 삭제하고 싶습니다 . logrotate
사업 정책 때문에 이렇게 해야 했습니다.
logrotate
그렇다면 매 시간마다 이 명령을 실행하는 것과 동일한 것은 무엇일까요?
find /var/log/app -name "*.old" -mtime +1 -exec rm -f {} \;
답변1
logrotate
하루에 한 번 실행됩니다. 스크립트는 여기 /etc/cron.daily/logrotate
(CentOS 7)에서 찾을 수 있습니다. 매시간 실행하려면 먼저 로 이동해야 합니다 /etc/cron.hourly/
. 따라서 위 명령의 경우 해당 logrotate
스크립트는 다음과 같습니다.
$ cat /etc/logrotate.d/app
/var/log/app/*.old {
hourly
rotate 0
firstaction
/usr/bin/find /var/log/app/ -name "*.old" -mtime +1 -delete
endscript
nocreate
missingok
notifempty
}
답변2
테스트해야 할 가능성은 다음과 같습니다.
cat /etc/logrotate.d/customapp
/var/log/app/*.old {
daily
missingok
rotate 0
notifempty
}
왜 0을 회전합니까?
개수가 0이면 이전 버전이 회전되지 않고 삭제됩니다. (출처 : 남자)