Logrotate错误:找不到/var/log/apache*/*error.log文件

Logrotate每天运行,并通过电子邮件发送给我一份报告。 这一直工作正常,但我现在每天也得到以下电子邮件:

Date: Mon, 10 Aug 2009 04:02:08 +0100 From: [email protected] (Cron Daemon) To: [email protected] Subject: Cron <root@dev> run-parts /etc/cron.daily Auto-Submitted: auto-generated X-Cron-Env: <SHELL=/bin/bash> X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin> X-Cron-Env: <MAILTO=root> X-Cron-Env: <HOME=/> X-Cron-Env: <LOGNAME=root> X-Cron-Env: <USER=root> /etc/cron.daily/logrotate: ERROR No file found for /var/log/apache*/*error.log ERROR No file found for /home/www/myhomepage/error.log ERROR No file found for /var/www/*/logs/access_log 

上面的日志目录不存在,我不知道为什么logrotate突然决定包含它们。 我觉得这个问题在我安装了fail2ban之后就开始了。

/etc/cron.daily/logrotate包含:

 #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 

/etc/logrotate.conf包含:

 # see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp -- we'll rotate them here /var/log/wtmp { monthly minsize 1M create 0664 root utmp rotate 1 } 

/etc/logrotate.d/httpd包含:

 /var/log/httpd/*log { missingok notifempty sharedscripts postrotate /sbin/service httpd reload > /dev/null 2>/dev/null || true endscript } 

我不知道/ var / log / apache * / error.log,/home/www/myhomepage / error.log或/ var / www / / logs / access_log的引用是在哪里。

有任何想法吗?

谢谢,帕特里克

编辑感谢您的答复,这是我所尝试的:

 vatican:~# grep myhomepage /etc/logrotate.d/* vatican:~# grep apache /etc/logrotate.d/* vatican:~# grep www /etc/logrotate.d/* 

没有回来! 这很奇怪!

编辑再次感谢您的答复。 问题毕竟是由fail2ban引起的。 这些引用是在jail.conf文件中进行的。 我已经更正了这些引用,问题已解决。

好的,它似乎与logrotate没有任何关系。 我认为你看到的错误来自fail2ban,它正在寻找这些文件。 尝试tu在/etc/logrotate.d/fail2ban(类似的东西)手动运行fail2ban的postscript,你会看到错误。

要扩大HD的评论:你需要更仔细地看看logrotate.d目录。

许多软件包直接安装logrotateconfiguration文件。 该目录中的任何logrotateconfiguration文件将作为cron.daily logrotate作业的一部分运行。

看一看这个目录,看看你是否找不到基于名字的有问题的文件。 如果没有,grep声明可能是你最好的select:

 grep myhomepage /etc/logrotate.d/* 

编辑或删除您认为合适的文件。

如果你不确定这些文件是从哪里来的,那么下面的命令(在Debian / Ubuntu上)会告诉你:

 dpkg -S /etc/logrotate.d/FILENAME 

在基于RPM的系统上,以下命令应该告诉你哪个软件包安装了该文件:

 rpm -qf /etc/logrotate.d/FILENAME 

正如所调用的命令是:

 /usr/sbin/logrotate /etc/logrotate.conf 

我可能会看:

 /etc/logrotate.conf