Можно ли предотвратить появление сообщений ядра в выводе dmesg?
Например. Я использую программное обеспечение, которое закрывает туннели PPPoE. Одна из предоставляемых им функций - возможность задавать собственные имена интерфейсов.
Однако это приводит к сообщениям в dmesg, например:
...
[Mon May 28 09:50:06 2018] ifname.3: renamed from pppoe3
[Mon May 28 11:07:40 2018] ifname.4: renamed from pppoe4
[Mon May 28 11:11:37 2018] ifname.5: renamed from pppoe5
[Mon May 28 11:18:26 2018] ifname.6: renamed from pppoe6
[Mon May 28 11:40:46 2018] ifname.7: renamed from pppoe7
...
Я отслеживал функцию, отвечающую за то, чтобы это было netdev_info
: https://github.com/torvalds/linux/blob/v4.16/net/core/dev.c#L1204
Проблема с этими сообщениями в том, что они заполняют буфер и отменяют любые другие важные сообщения (сбои драйвера, предупреждения iptable и т. Д.).
Можно ли убрать это конкретное сообщение из вывода dmesg?
Я попытался установить sysctl kernel.printk, но, похоже, это не помогло, и сообщения появляются в выводе dmesg независимо от настроек.
Спасибо.
Ну, эта функция netdev_info выводит сообщения ядра через printk в ИНФОРМАЦИЯ уровень. Я верю, что ты можешь изменить свой kernel.printk
для контроля уровня сообщений, которые фактически регистрируются. Таким образом, вы можете отрегулировать вниз от уровня ИНФОРМАЦИИ до менее шумных уровней ПРЕДУПРЕЖДЕНИЯ или ОШИБКИ.
Я вообще люблю это делать 3 4 1 3
по умолчанию
# /etc/sysctl.d/printk.conf
# Uncomment the following to stop low-level messages on console
kernel.printk = 3 4 1 3
Смотрите эти ссылки для получения дополнительной информации о kernel.printk
Это подавит не только это конкретное сообщение. Если у вас есть другая информация, регистрируемая на уровне INFO, которую вы действительно хотите или должны увидеть, это может быть не лучшим решением.
Если вас интересует только то, что регистрируется в управляемых вами журналах системного журнала, вы должны иметь возможность применять фильтры в зависимости от того, какой демон системного журнала вы запускаете.
dmesg
читает из кольцевого буфера ядра, и, насколько я могу судить, вы не можете предотвратить его «загрязнение» нежелательными сообщениями.
В любом случае, в зависимости от вашего дистрибутива, старые журналы ядра можно найти в /var/log/messages
или /var/log/syslog
.