Поиск по сайту:
Я не люблю сражаться, я люблю побеждать (Б. Шоу).

Команда Dmesg в Linux

17.10.2019

Ядро Linux является ядром операционной системы, которое контролирует доступ к системным ресурсам, таким как ЦП, устройства ввода-вывода, физическая память и файловые системы. Ядро записывает различные сообщения в кольцевой буфер ядра во время процесса загрузки и во время работы системы. Эти сообщения содержат различную информацию о работе системы.

Кольцевой буфер ядра — это часть физической памяти, в которой хранятся сообщения журнала ядра. Он имеет фиксированный размер, что означает, что после заполнения буфера старые записи журналов перезаписываются.

Утилита командной строки dmesg используется для печати и управления кольцевого буфера ядра в Linux и других Unix-подобных операционных систем. Это полезно для изучения загрузочных сообщений ядра и устранения проблем, связанных с оборудованием.

В этой статье мы рассмотрим основы команды dmesg.

 

Синтаксис команды dmesg следующий:

dmesg [OPTIONS]

 

При вызове без каких-либо параметров dmesg записывает все сообщения из кольцевого буфера ядра в стандартный вывод:

dmesg

 

По умолчанию все пользователи могут запускать команду dmesg. Однако в некоторых системах доступ к ним dmesg может быть ограничен для пользователей без полномочий root. В этой ситуации при вызове dmesg, вы получите сообщение об ошибке, как показано ниже:

dmesg: read kernel buffer failed: Operation not permitted

 

Параметр ядра kernel.dmesg_restrict указывает, могут ли непривилегированные пользователи dmesg просматривать сообщения из буфера журнала ядра. Чтобы снять ограничения, установите его на ноль:

sudo sysctl -w kernel.dmesg_restrict=0

 

Обычно выходные данные содержат много строк информации, поэтому только последняя часть выходных данных является видимой. Чтобы увидеть одну страницу за раз, перенаправьте вывод в утилиту терминала, такую как less или more:

dmesg --color=always | less

 

—color=always используются для сохранения цветного вывода.

Если вы хотите отфильтровать буферные сообщения, используйте grep. Например, чтобы просмотреть только сообщения, связанные с USB, вы должны набрать:

dmesg | grep -i usb

 

dmesg читает сообщения, сгенерированные ядром, из виртуального файла /proc/kmsg. Этот файл предоставляет интерфейс к кольцевому буферу ядра и может быть открыт только одним процессом. Если процесс syslog запущен в вашей системе и вы пытаетесь прочитать файл с помощью команды cat, или less, команда зависнет.

Демон syslog сбрасывает сообщения ядра /var/log/dmesg, так что вы также можете использовать файл журнала:

cat /var/log/dmesg

 

Команда dmesg предоставляет ряд опций, которые помогут вам отформатировать и отфильтровать вывод.

Один из наиболее часто используемых параметров dmesg- это -H( —human), который обеспечивает удобочитаемый вывод. Эта опция направляет вывод команды в терминал:

dmesg -H

 

Для печати удобочитаемых временных отметок используйте опцию -T( —ctime):

dmesg -T

 

[Mon Oct 07 23:12:43 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

 

Формат —time-format <format> отметок времени также может быть установлен с помощью опции, которая может быть ctime, reltime, delta, notime или iso. Например, чтобы использовать дельта-формат, введите:

dmesg --time-format=delta

 

Вы также можете объединить два или более вариантов:

dmesg -H -T

 

Чтобы просмотреть вывод команды dmesg в режиме реального времени, используйте опцию -w( —follow):

dmesg --follow

 

Вы можете ограничить вывод dmesg данными объектами и уровнями.

Средство представляет процесс, который создал сообщение. dmesg, поддерживает следующие возможности журнала:

  • kern — сообщения ядра
  • user — сообщения уровня пользователя
  • mail — почтовая система
  • daemon — системные демоны
  • auth — сообщения безопасности/авторизации
  • syslog — внутренние сообщения syslogd
  • lpr — подсистема линейного принтера
  • news — подсистема сетевых новостей

Опция -f( —facility <list>) позволяет ограничить вывод определенными объектами. Опция принимает одно или несколько разделенных запятыми объектов.

Например, для отображения только сообщений ядра и системных демонов вы должны использовать:

dmesg -f kern,daemon

 

Каждое сообщение журнала связано с уровнем журнала, который показывает важность сообщения. dmesg поддерживает следующие уровни журнала:

  • emerg — система неработоспособна
  • alert — действие должно быть предпринято немедленно
  • crit — критические условия
  • err — условия ошибки
  • warn — условия предупреждения
  • notice — нормальное, но значимое состояние
  • info — информационный
  • debug — сообщения уровня отладки

Опция -l( —level <list>) ограничивает вывод определенными уровнями. Опция принимает один или несколько уровней, разделенных запятыми.

Следующая команда отображает только сообщения об ошибках и критические сообщения:

dmesg -l err,crit

 

Опция -C ( —clear) позволяет очистить кольцевой буфер:

sudo dmesg -C

 

Только root или пользователи с привилегиями sudo могут очистить буфер.

Чтобы распечатать содержимое буфера перед очисткой, используйте параметр -c( —read-clear):

sudo dmesg -c

 

Если вы хотите сохранить текущие журналы dmesg в файле перед его очисткой, перенаправьте вывод в файл:

dmesg > dmesg_messages

 

Команда dmesg позволяет вам просматривать и контролировать кольцевой буфер ядра. Это может быть очень полезно при устранении неполадок ядра или аппаратных проблем.

Введите man dmesg в своем терминале для просмотра информации о всех доступных опциях dmesg.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

Спасибо!

Теперь редакторы в курсе.