Что означает строка *. *; Auth, authpriv.none - / var / log / syslog в конфигурационном файле rsyslog?

11

Я пытаюсь понять /etc/rsyslog.confфайл, но мне чего-то не хватает. Например, это часть файла:

auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
cron.*              /var/log/cron.log
daemon.*            -/var/log/daemon.log
kern.*              -/var/log/kern.log
lpr.*               -/var/log/lpr.log
mail.*              -/var/log/mail.log
user.*              -/var/log/user.log

Согласно этой странице:

Средство является одним из следующих ключевых слов: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (так же, как auth), syslog, user, uucp и local0 - local7.

Приоритет - это одно из следующих ключевых слов в порядке возрастания: отладка, информация, уведомление, предупреждение, предупреждение (то же самое, что и предупреждение), ошибка, ошибка (то же, что и ошибка) крит, предупреждение, эмердж, паника (такая же, как у эргд). Ключевые слова error, warn и panic устарели и больше не должны использоваться. Приоритет определяет серьезность сообщения.

Звездочка («*») обозначает все объекты или все приоритеты, в зависимости от того, где они используются (до или после периода). Ключевое слово none означает отсутствие приоритета для данного объекта.

Вы можете указать несколько объектов с одинаковым шаблоном приоритета в одном операторе, используя оператор запятой (","). Вы можете указать столько объектов, сколько хотите. Помните, что из такого утверждения берется только часть объекта, приоритетная часть будет пропущена.

Для одного действия можно указать несколько селекторов, используя точку с запятой (";"). Помните, что каждый селектор в поле селектора способен перезаписать предыдущие. Используя это поведение, вы можете исключить некоторые приоритеты из шаблона.

Итак, это довольно понятно, но как насчет пути к файлу справа. Это может быть просто путь, или путь с ним |или -перед ним (или, может быть, даже что-то еще). В чем разница между тремя?

Михаил Морфиков
источник

Ответы:

16

Данный

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

*.* означает журнал всех объектов и всех приоритетов.

auth,authpriv.none означает не регистрировать средства авторизации и аутентификации.

-/var/log/syslogозначает войти в файл / var / log / syslog. Предыдущая черта говорит syslogd не вызывать fsync (), т.е. не сбрасывать буфер ядра на диск после каждой записи в файл.

Кайл Джонс
источник
Как auth,authpriv.noneзначит не войти? В цитируемом документе «каждый селектор в поле селектора способен перезаписать предыдущие» - где подробно описаны эти действия? Я ожидал бы, что authчасть будет соответствовать средству аутентификации, которое уже было сопоставлено *.*, а не отключать его.
JL6
2
auth,authprivсоответствует как authи authpriv. .noneЧасть относится к обоим из них. *.*;auth;authpriv.noneбудет вести себя так, как вы описываете.
Кайл Джонс
Хорошо, спасибо! И это где-нибудь задокументировано?
JL6
1
Это подразумевается в документации выше. Приоритетная часть пропускается (игнорируется) для всех объектов, кроме последнего, если вы перечислили несколько объектов, используя запятую. Документы, безусловно, могут быть улучшены в этой области.
Кайл Джонс
Я добавил строку, *.*;auth,authpriv.none /dev/console чтобы сообщения системного журнала также появлялись на консоли (tty1) на моем Raspberry Pi. Мой Pi-сервер подключен к монитору, который используется только для мониторинга журналов. Видишь, я делаю над этим какие-то работы.
Будет