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