Не так давно я опубликовал этот вопрос и получил ответ, который отлично работает в Ubuntu 10.10 и Linux Mint 10. Что он сделал, так это отправил сообщения ядра в момент их появления в сценарии. В моем случае он был перенаправлен на скрипт, который отправлял сообщения ядра на OLED-экран моего ноутбука. Я сделал это, добавив следующие строки в мой файл /etc/rsyslog.conf:

$template OLEDformat,"%msg%0
kern.*  ^/opt/asusg50oled/utils/notify.sh;OLEDformat

Позже я восстановил файл rsyslog.conf до нормального состояния и переместил вышеуказанные строки в новый файл в /etc/rsyslog.d/00-asusg50oled.conf, чтобы упростить его настройку при необходимости. Так как /etc/rsyslog.conf загружает все из /etc/rsyslog.d в любом случае, это работает так же хорошо.

Проблема, однако, в том, что это больше не работает в Ubuntu 11.04 и Linux Mint 11 RC. Независимо от того, помещаю ли я строки в /etc/rsyslog.conf или в файл в /etc/rsyslog.d/, я получаю только одно сообщение, перенаправленное прямо при запуске rsyslog. Проверка файлов, уже указанных в /etc/rsyslog.conf, показывает, что система регистрирует события ядра и dmesg работает нормально.

Что-то изменилось в rsyslog между Ubuntu 10.10 и 11.04, и есть ли обходной путь?

редактировать

Вот вывод команды rsyslogd -v в Linux Mint 11 RC и Ubuntu 11.04, где вышеуказанное решение не работает:

rsyslogd 4.6.4, compiled with:
    FEATURE_REGEXP:             Yes
    FEATURE_LARGEFILE:          No
    FEATURE_NETZIP (message compression):   Yes
    GSSAPI Kerberos 6 support:      Yes
    FEATURE_DEBUG (debug build, slow code): No
    Atomic operations supported:        Yes
    Runtime Instrumentation (slow code):    No

Это вывод команды rsyslogd -v в Linux Mint 10 и Ubuntu 10.10, где вышеуказанное решение отлично работает:

rsyslogd 4.2.0, compiled with:
    FEATURE_REGEXP:             Yes
    FEATURE_LARGEFILE:          Yes
    FEATURE_NETZIP (message compression):   Yes
    GSSAPI Kerberos 5 support:      Yes
    FEATURE_DEBUG (debug build, slow code): No
    Atomic operations supported:        Yes
    Runtime Instrumentation (slow code):    No

Согласно www.rsyslog.com, последняя стабильная версия rsyslogd на самом деле 5.8.1, которая в настоящее время недоступна в качестве обновления для Ubuntu 11.04 или Linux Mint 11RC.

Редактировать 2

Я только что проверил, что openSUSE 11.4 правильно следует моим добавленным строкам для rsyslogd. В openSUSE 11.4 вывод команды rsyslogd -v :

rsyslogd 5.6.5, compiled with:
    FEATURE_REGEXP:             Yes
    FEATURE_LARGEFILE:          No
    FEATURE_NETZIP (message compression):   Yes
    GSSAPI Kerberos 5 support:      Yes
    FEATURE_DEBUG (debug build, slow code): No
    Atomic operations supported:        Yes
    Runtime Instrumentation (slow code):    No

К сожалению, я обнаружил, что я не без ума от openSUSE, и поэтому я вернусь к Linux Mint, где у меня все еще есть проблемы. Теперь мне интересно, может ли быть что-то другое в ядре (назовите это догадкой). Есть идеи?

Обновить

Я только что собрал из исходного кода и установил rsyslogd 5.8.1 (последняя стабильная версия). Я могу подтвердить, что он установлен правильно, потому что одно-единственное сообщение, которое пересылается, отражает новый номер версии. Кроме того, rsyslogd -v выводит:

rsyslogd 5.8.1, compiled with:
    FEATURE_REGEXP:             Yes
    FEATURE_LARGEFILE:          No
    GSSAPI Kerberos 5 support:      No
    FEATURE_DEBUG (debug build, slow code): No
    32bit Atomic operations supported:  Yes
    64bit Atomic operations supported:  No
    Runtime Instrumentation (slow code):    No

1 ответ1

1

Мне кажется, что в самом rsyslog есть ошибка (которая, возможно, уже была исправлена в более поздних версиях). В заметках об изменениях в 4.6.5 упоминается пара исправлений ошибок для модуля «imfile», которые могут применяться, а могут и не применяться. Вот и все.

Скотт Мозер также имеет PPA, который включает в себя версию rsyslog 5.8.1, которую вы можете найти здесь, если вы не против использовать этот репозиторий.

Другая идея заключается в том, что вы можете взглянуть на использование 64-битной версии, если в настоящее время вы используете 32-битную Ubuntu. В заметках об изменениях упоминается некоторая ошибка, возникающая при этом. Маловероятно, чтобы помочь, так как это не похоже, что это имеет какое-то отношение к архитектурам, но это идея.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .