У меня проблема с моим rsyslog и imfile, которая не работает, когда один из моих файлов журнала усекается.
Итак, чтобы обойти проблему, я изменил сценарий logrotate следующим образом:
"/etc/logrotate.d/logrotate.elasticbeanstalk.tomcat7.conf":
mode: "000644"
owner: root
group: root
content: |
/var/log/tomcat7/* {
size 1M
rotate 5
missingok
compress
notifempty
copytruncate
dateext
dateformat %s
olddir /var/log/tomcat7/rotated
postrotate
(/sbin/service rsyslog stop && rm -f /var/lib/rsyslog/tomcat-catalina && /sbin/service rsyslog start 2>&1) || true
endscript
}
В папке tomcat7 более или менее 15 файлов, ВСЕ они меньше 1M, кроме catalina.out. Поэтому я ожидаю, что logrotate будет выполнять ТОЛЬКО сценарий postrotate при обработке этого файла, но вот что он делает:
[ec2-user@ixxxxxxx]$ sudo logrotate -v /etc/logrotate.d/logrotate.elasticbeanstalk.tomcat7.conf
reading config file /etc/logrotate.d/logrotate.elasticbeanstalk.tomcat7.conf
reading config info for /var/log/tomcat7/*
olddir is now /var/log/tomcat7/rotated
Handling 1 logs
rotating pattern: /var/log/tomcat7/* 1048576 bytes (5 rotations)
olddir is /var/log/tomcat7/rotated, empty log files are not rotated, old logs are removed
considering log /var/log/tomcat7/catalina.2015-03-11.log
log does not need rotating
considering log /var/log/tomcat7/catalina.2015-03-12.log
log does not need rotating
considering log /var/log/tomcat7/catalina.2015-03-13.log
log does not need rotating
considering log /var/log/tomcat7/catalina.2015-03-14.log
log does not need rotating
considering log /var/log/tomcat7/catalina.2015-03-16.log
log does not need rotating
considering log /var/log/tomcat7/catalina.2015-03-17.log
log does not need rotating
considering log /var/log/tomcat7/catalina.2015-03-18.log
log does not need rotating
considering log /var/log/tomcat7/catalina.out
log needs rotating
considering log /var/log/tomcat7/host-manager.2015-03-11.log
log does not need rotating
considering log /var/log/tomcat7/host-manager.2015-03-12.log
log does not need rotating
considering log /var/log/tomcat7/host-manager.2015-03-13.log
log does not need rotating
considering log /var/log/tomcat7/host-manager.2015-03-14.log
log does not need rotating
considering log /var/log/tomcat7/host-manager.2015-03-16.log
log does not need rotating
considering log /var/log/tomcat7/host-manager.2015-03-17.log
log does not need rotating
considering log /var/log/tomcat7/host-manager.2015-03-18.log
log does not need rotating
considering log /var/log/tomcat7/localhost.2015-03-11.log
log does not need rotating
considering log /var/log/tomcat7/localhost.2015-03-12.log
log does not need rotating
considering log /var/log/tomcat7/localhost.2015-03-13.log
log does not need rotating
considering log /var/log/tomcat7/localhost.2015-03-14.log
log does not need rotating
considering log /var/log/tomcat7/localhost.2015-03-16.log
log does not need rotating
considering log /var/log/tomcat7/localhost.2015-03-17.log
log does not need rotating
considering log /var/log/tomcat7/localhost.2015-03-18.log
log does not need rotating
considering log /var/log/tomcat7/localhost_access_log.txt
log does not need rotating
considering log /var/log/tomcat7/manager.2015-03-11.log
log does not need rotating
considering log /var/log/tomcat7/manager.2015-03-12.log
log does not need rotating
considering log /var/log/tomcat7/manager.2015-03-13.log
log does not need rotating
considering log /var/log/tomcat7/manager.2015-03-14.log
log does not need rotating
considering log /var/log/tomcat7/manager.2015-03-16.log
log does not need rotating
considering log /var/log/tomcat7/manager.2015-03-17.log
log does not need rotating
considering log /var/log/tomcat7/manager.2015-03-18.log
log does not need rotating
considering log /var/log/tomcat7/tomcat7-initd.log
log does not need rotating
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
rotating log /var/log/tomcat7/catalina.out, log->rotateCount is 5
Converted ' %s' -> '%s'
dateext suffix '1426682650'
glob pattern '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
copying /var/log/tomcat7/catalina.out to /var/log/tomcat7/rotated/catalina.out1426682650
truncating /var/log/tomcat7/catalina.out
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
compressing log with: /bin/gzip
removing old log /var/log/tomcat7/rotated/catalina.out1426648681.gz
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
running postrotate script
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
как я могу этого избежать? Я не эксперт в Unix, но думаю, запускать такую службу 100 раз не очень хорошо?
Чтобы запустить сценарий postrotate только один раз (при определении записи logrotate для нескольких файлов), добавьте sharedscripts
вариант