Назад | Перейти на главную страницу

Logrotate выполняет постротацию, даже если файл не повернут

У меня проблема с моим 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 вариант