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

ОШИБКА Logrotate: файл для /var/log/apache*/*error.log не найден

Logrotate работает ежедневно и отправляет мне отчет по электронной почте. Это работает нормально, но теперь я также ежедневно получаю следующее электронное письмо:

Date: Mon, 10 Aug 2009 04:02:08 +0100
From: root@localhost.localdomain (Cron Daemon)
To: root@localhost.localdomain
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. Я исправил эти ссылки, и проблема решена.

Чтобы расширить комментарий HD: вам нужно более внимательно изучить каталог logrotate.d.

Многие пакеты устанавливают файлы конфигурации logrotate напрямую в него. Любой файл конфигурации logrotate в этом каталоге будет запущен как часть задания cron.daily logrotate.

Просмотрите этот каталог и посмотрите, не можете ли вы найти файлы, вызывающие нарушение, по их именам. Если нет, лучше всего использовать команду grep:

grep myhomepage /etc/logrotate.d/*

Отредактируйте или удалите найденные файлы по своему усмотрению.

Если вы не уверены, откуда взялся один из этих файлов, следующая команда (в Debian / Ubuntu) сообщит вам:

dpkg -S /etc/logrotate.d/FILENAME

В системах на основе RPM следующая команда должна сообщить вам, какой пакет установил файл:

rpm -qf /etc/logrotate.d/FILENAME

Хорошо, похоже, это не имеет ничего общего с logrotate. Я думаю, что вы видите ошибки от fail2ban, который ищет эти файлы. Попробуйте вручную запустить postscript из fail2ban в /etc/logrotate.d/fail2ban (или что-то в этом роде), и вы увидите ошибки.

Как вызываемая команда:

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

Я бы, наверное, заглянул:

/etc/logrotate.conf