Debian включение логов cron

С удивлением на днях обнаружил, что в Debian по-умолчанию нет отдельного файла логов cron. Он все пишет в общий файл логов /var/log/syslog Мне показалось это неудобным, когда нужно было отладить работу нескольких скриптов, работающих по расписанию.

Для исправления ситуации и вынесения логов в отдельный файл нужно сделать следующее. Открываем и редактируем файл /etc/rsyslog.conf

# mcedit /etc/rsyslog.conf

Ищем строку:

cron.*                                  /var/log/cron.log

И раскомментируем ее. Если такой нет, то добавляем. Чтобы логи не писались в общий файл, ищем строку с

*.*

и добавляем туда cron.none. Должно получиться так:

*.*;auth,authpriv.none,cron.none        -/var/log/syslog

После этого перезапускаем rsyslog:

# service rsyslog restart

Проверяем, создался ли файл:

# cd /var/log
# ls -l | grep cron
-rw-r----- 1 root        adm     140479 Апр 20 17:20 cron.log

Все в порядке, теперь надо настроить ротацию этого файла. Редактируем файл /etc/logrotate.d/rsyslog

# mcedit /etc/logrotate.d/rsyslog

Раскомментируем или добавим, если у вас нет строчку /var/log/cron.log Файл должен выглядеть примерно так:

/var/log/syslog
{
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog rotate > /dev/null
        endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
<strong>/var/log/cron.log</strong>
/var/log/debug
/var/log/messages
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                invoke-rc.d rsyslog rotate > /dev/null
        endscript
}

Теперь файл логов cron будет ротироваться как и все остальные системные логи. На этом настройка логов cron на Debian закончена.

Найдена информация на сайте serveradmin.ru .