Насколько мне известно, dmesg
показывает информацию о ядре и модулях ядра, а /var/log/messages
также показывает информацию, создаваемую ядром и модулями.
Так в чем же разница?/var/log/messages
⊂выход dmesg
?
Дополнительная информация, которая может быть полезна:
- Естьбуфер кольца ядра, который, я думаю, является единственным местом для хранения данных журнала ядра.
- Статья "Ведение журнала ядра: API и реализация" на IBM DeveloperWorks описал API и картинку с высоты птичьего полета.
решение1
dmesg
печатает содержимое кольцевого буфера. Эта информация также отправляется в режиме реального времени в syslogd
или klogd
, когда они запущены, и попадает в /var/log/messages
; когда dmesg
наиболее полезно захватывать сообщения о загрузке до syslogd
и/или klogd
при запуске, чтобы они были правильно зарегистрированы.
решение2
Это зависит от операционной системы. Например, в Solaris,dmesgэто просто скрипт оболочки, показывающий последние 200 строк файлов /var/adm/messages.*
.
решение3
- Можно сказать, что
dmesg
это подмножество/var/log/messages
и оно хранится в кольцевом буфере. /var/log/messages
включает в себя все системные сообщения, включая сообщения от запуска системы вместе с сообщениями вdmesg
. В двух словах логи изdmesg
сбрасываются в/var/log/messages
./var/log/messages
вести общие журналы активности системы иdmesg
вести только журналы ядра.
решение4
dmesg: dmesg — это сообщение (дисплея или драйвера). Оно используется для проверки или управления кольцевым буфером ядра.
Сообщения: Он содержит глобальные системные сообщения, включая сообщения, которые регистрируются во время запуска системы. Есть несколько вещей, которые регистрируются, /var/log/messages
включая почту, cron, daemon, kern, auth и т. д.