Иногда нужно чтобы cron писал свои логи в отдельный файл. Но как это сделать?
Читаем ниже.
Исходные данные: Ubuntu 22.04
Задача: Сделать запись логов cron в отдельный лог-файл
По умолчанию в Ubuntu 22.04 служба cron пишет свои логи в файл /var/log/syslog (хотя правильней сказать, что служба rsyslog перенаправляет логи в этот файл), но иногда нужно сделать так, чтобы он писал их в отдельный файл, скажем в /var/log/cron.log
ВАЖНО! Так же нужно предусмотреть чтобы логи cron перестали записываться в файл /var/log/syslog
1. Создадим правило для rsyslog в файле /etc/rsyslog.d/40-cron.conf
(cat<<-EOF cron.* /var/log/cron.log :programname, startswith, "CRON" /var/log/cron.log :programname, startswith, "CRON" stop EOF )>/etc/rsyslog.d/40-cron.conf
2. Проверим корректность конфигурации
# rsyslogd -N 1 rsyslogd: version 8.2112.0, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
3. Перазапустим службы rsyslog и cron
systemctl restart rsyslog systemctl restart cron
4. Проверим что в лог-файле /var/log/cron.log появились записи
# cat /var/log/cron.log Aug 7 12:20:28 myserver cron[46305]: (CRON) INFO (pidfile fd = 3) Aug 7 12:20:28 myserver cron[46305]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
Видим, что появились первые записи. В дальнейшем в этот лог-файл cron будет писать всю информацию о своей работе.
ВАЖНО! Очень желательно настроить ротацию нового лог-файла /var/log/cron.log, чтобы в последствии логи cron не заняли много места на сервере.
5. Настройка ротации лог-файла /var/log/cron.log
(cat<<-EOF /var/log/cron.log { daily rotate 14 compress delaycompress missingok su root root } EOF )>/etc/logrotate.d/cron
Проверим как работает ротация
logrotate -d /etc/logrotate.d/cron
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Профессионально занимаюсь системным администрированием Linux -серверов и баз данных (MySQL, PostgreSQL) на протяжении последних 24 лет.