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

Почему logrotate не вращает журналы журналов доступа Tomcat на aws centos 6.3?

У меня есть следующий файл в /etc/logrotate.d:

/usr/share/apache-tomcat/logs/*.access {
nodateext
copytruncate
daily
rotate 7
notifempty
postrotate
EXT=`date --date='-1 day' +%Y-%m-%d`
/bin/gzip $1.1
mv $1.1.gz  $1.$EXT.log.gz
endscript
create 0640 tomcat tomcat
}

Он должен взять файл servername.access и переместить его в servername.access.2013.02.24.log.gz

Когда я бегу вручную sudo /usr/sbin/logrotate -v /etc/logrotate.d/tomcat работает изнутри cron ежедневно не работает

содержимое /var/lib/logrotate.status

logrotate state -- version 2
"/var/log/yum.log" 2013-1-1
"/var/log/up2date" 2012-12-12
"/var/log/sssd/*.log" 2012-12-12
"/var/log/dracut.log" 2013-1-1
"/var/log/httpd/*log" 2013-2-12
"/var/log/wtmp" 2012-12-12
"/var/log/spooler" 2013-2-24
"/usr/share/apache-tomcat/logs/AWS001.access" 2013-2-24
"/var/log/btmp" 2013-2-12
"/var/log/rhsm/rhsmcertd.log" 2013-2-24
"/var/log/maillog" 2013-2-24
"/var/log/php-fpm/error.log" 2013-2-24
"/var/log/cups/*_log" 2012-12-12
"/var/log/secure" 2013-2-24
"/var/log/rhsm/rhsm.log" 2013-2-24
"/var/log/messages" 2013-2-24
"/var/account/pacct" 2012-12-12
"/var/log/cron" 2013-2-24

выход /var/log/cron:

Feb 24 00:48:01 AWS001 run-parts(/etc/cron.daily)[13433]: starting logrotate
Feb 24 00:48:02 AWS001 run-parts(/etc/cron.daily)[13457]: finished logrotate

Есть у кого-нибудь идея?

Наконец-то я заработал

sudo crontab -u root -l (list jobs for user root in cron)
There was no jobs
sudo crontab -u root -e (edit crontab)
@daily /usr/sbin/logrotate -v /etc/logrotate.d/tomcat  >/dev/null 2>&1
save the file
sudo crontab -u root -l
one job for user root

Я также добавил полные пути в /etc/logrotate.d/tomcat, как указано в пользовательских квантах.

Примечание: когда вы указываете / etc / crontab, он все еще пуст

Я нашел свою работу в файле / var / spool / cron / root
Спасибо всем ответившим

logrotate -d /path/tologrotate.conf

(NB: не файл вашего фрагмента, а файл верхнего уровня, который его включает)

Результат этого может быть полезным.

отрывок из sudo / usr / sbin / logrotate -d /etc/logrotate.conf после того, как я установил дату на один день назад внутри /var/lib/logrotate.status (в противном случае он не говорит ничего для поворота)

rotating pattern: /usr/share/apache-tomcat/logs/*.access  after 1 days (7 rotations)
empty log files are not rotated, old logs are removed
considering log /usr/share/apache-tomcat/logs/AWS001.access
  log needs rotating
rotating log /usr/share/apache-tomcat/logs/AWS001.access, log->rotateCount is 7
dateext suffix '-20130225'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /usr/share/apache-tomcat/logs/AWS001.access.7 to /usr/share/apache-tomcat/logs/AWS001.access.8 (rotatecount 7, logstart 1, i 7), 
renaming /usr/share/apache-tomcat/logs/AWS001.access.6 to /usr/share/apache-tomcat/logs/AWS001.access.7 (rotatecount 7, logstart 1, i 6), 
renaming /usr/share/apache-tomcat/logs/AWS001.access.5 to /usr/share/apache-tomcat/logs/AWS001.access.6 (rotatecount 7, logstart 1, i 5), 
renaming /usr/share/apache-tomcat/logs/AWS001.access.4 to /usr/share/apache-tomcat/logs/AWS001.access.5 (rotatecount 7, logstart 1, i 4), 
renaming /usr/share/apache-tomcat/logs/AWS001.access.3 to /usr/share/apache-tomcat/logs/AWS001.access.4 (rotatecount 7, logstart 1, i 3), 
renaming /usr/share/apache-tomcat/logs/AWS001.access.2 to /usr/share/apache-tomcat/logs/AWS001.access.3 (rotatecount 7, logstart 1, i 2), 
renaming /usr/share/apache-tomcat/logs/AWS001.access.1 to /usr/share/apache-tomcat/logs/AWS001.access.2 (rotatecount 7, logstart 1, i 1), 
renaming /usr/share/apache-tomcat/logs/AWS001.access.0 to /usr/share/apache-tomcat/logs/AWS001.access.1 (rotatecount 7, logstart 1, i 0), 
copying /usr/share/apache-tomcat/logs/AWS001.access to /usr/share/apache-tomcat/logs/AWS001.access.1
truncating /usr/share/apache-tomcat/logs/AWS001.access
running postrotate script
running script with arg /usr/share/apache-tomcat/logs/AWS001.access: "
EXT=`/bin/date --date='-1 day' +%Y-%m-%d`
/bin/gzip $1.1
/bin/mv $1.1.gz  $1.$EXT.log.gz
"
removing old log /usr/share/apache-tomcat/logs/AWS001.access.8
error: error opening /usr/share/apache-tomcat/logs/AWS001.access.8: No such file or directory

Когда я бегу вручную sudo /usr/sbin/logrotate -v /etc/logrotate.d/tomcat работает изнутри cron ежедневно не работает

Имейте в виду, что вы всегда должны использовать абсолютный путь в cron, поэтому попробуйте следующее:

EXT=`/bin/date --date='-1 day' +%Y-%m-%d`
/bin/gzip $1.1
/bin/mv $1.1.gz $1.$EXT.log.gz