Альтернативный способ отключить запись cron в / var / log / syslog

Есть ответы, которые предлагают изменить это:

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

На это :

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

Это работает, но требует довольно точного редактирования первой строки, что создает сложности, когда вы хотите автоматизировать настройку.

Да, это можно сделать с помощью состояния sed или Salt file.replace, но я бы хотел реализовать, добавив / добавив файл rsyslog.conf, или, что еще лучше, создав /etc/rsyslog.d/ (00 | 99) -my-cron-log.conf , чтобы сделать его более надежным и независимым от распределения, хотя я недостаточно следую логике конфигурации rsyslog.conf, чтобы заставить его работать. Я не могу удалить строки "CRON" из syslog.log, за исключением приведенного выше примера.

Можно ли вообще отключить cron для входа в syslog. log без изменения строк конфигурации сопровождающего пакета?

2
задан 13 December 2015 в 15:05
2 ответа

Возможно ли вообще отключить cron для входа в syslog.log без изменения строк конфигурации сопровождающего пакета?

Нет. В cron(8) из систем на базе Debian предусмотрена опция -L, которая устанавливает значение 0 для уровня журнала, но она недоступна в дистрибутивах на базе EL.

Нет никакой реальной причины не редактировать файлы. Вероятно, я бы просто создал стандартный файл и попросил бы свое решение CM установить его.

0
ответ дан 3 December 2019 в 14:36

По крайней мере, начиная с 2021 года, создание файла conf в /etc/rsyslog.d/, который загружается до используемого по умолчанию (в производных от Debian системах)файла conf /etc/rsyslog.d/50-default.conf, работает. Имя должно быть примерно таким, как (00-49)-name.conf.

Например, я создал файл/etc/rsyslog.d/00-custom.conf:

# Don't overflow logs, suppress cron logs for tasks running every minute
# (needs to append "#minutely" as a comment at the end of such commands)
if $programname == 'CRON' and $msg contains '#minutely' then stop

# Put info level cron logs in a separated file.
cron.=info      /var/log/cron.log  # redirect if level is exactly 'info'
cron.notice     -/var/log/syslog   # keep sending to syslog if level is 'notice' or higher
cron.*          stop               # drop messages here to avoid default redirections

Чтобы изменения вступили в силу немедленно:

# systemctl restart rsyslog.service
0
ответ дан 24 September 2021 в 03:17

Теги

Похожие вопросы