Що означає рядок *. *; 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, пошта, марка, новини, безпека (те саме, що auth), syslog, користувач, uucp та local0 через local7.

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

Зірочка ("*") означає всі об'єкти або всі пріоритети, залежно від місця їх використання (до або після періоду). Ключове слово жодне не означає пріоритету для даного засобу.

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

Для однієї дії можна використовувати декілька селекторів, використовуючи роздільник крапки з комою (";"). Пам'ятайте, що кожен селектор у полі вибору може перезаписати попередні. Використовуючи таку поведінку, ви можете виключити певні пріоритети із структури.

Отже, це цілком зрозуміло, але як бути з файлом шлях справа. Це може бути просто стежка, або стежка з |або -перед нею (а може, навіть щось інше). Яка різниця між трьома?

Відповіді:


16

Дано

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

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

auth,authpriv.none означає, що не записуйте засоби аутентифікації та authpriv.

-/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 щоб повідомлення syslog також виходили на консоль (tty1) на моєму Raspberry Pi. У мене на моєму сервері Pi підключений монітор, який використовується лише для моніторингу журналів. Я заробляю будь-яку роботу, яку ви бачите.
Буде
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.