Как использовать команду dmesg в Linux

Опубликовано: 3 Октября, 2022

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

Использование команды dmesg:

Все сообщения, полученные из кольцевого буфера ядра, отображаются, когда мы выполняем команду «dmesg» , здесь будут показаны только самые последние сообщения. Это используется для проверки сообщений, хранящихся в кольцевом буфере ядра. В случае пользователя без полномочий root используйте «sudo» для запуска команд уровня root, не будучи root.

$ sudo dmesg

Хотя мы используем команду dmesg, она дает большой вывод, мы можем использовать команду tail, head или less для просмотра страниц журналов. Для поиска определенного журнала или термина по вашему выбору с помощью косой черты «/» для поиска в меньшем

$ sudo dmesg | less

dmesg по умолчанию дает цветной вывод, как показано выше, но если вы хотите раскрасить его для правильного понимания сообщений, вы можете раскрасить их с помощью команды «L».

$ sudo dmesg -L

dmesg использует временные метки в секундах и наносекундах, для удобного для человека формата используйте опцию «H» для временных меток. То же самое отображается в меньшем. В метке времени он показывает дату и время. Сообщения, происходящие каждую минуту, помечаются как секунды и наносекунды.

$ sudo dmesg -H

Мы используем параметр -T (удобочитаемый), так как они отображаются со стандартной датой и временем. В этом варианте разрешение понижено на минуту

$ sudo dmesg -T

Для мониторинга журналов в реальном времени используется опция «follow » с dmesg, которая отображает последние сообщения в нижней части терминала.

$ sudo dmesg --follow

Поскольку мы видим, что dmesg выдает большой вывод, мы можем использовать опцию tail или head, чтобы вывести определенное количество сообщений и просмотреть их. Здесь мы проверяем первые 10 сообщений, используя опцию head .

$ sudo dmesg | head -10

Последние 10 сообщений отображаются с использованием опции хвоста

$ sudo dmesg | tail -10

Здесь мы будем использовать параметр -i (игнорировать) для поиска определенной строки, шаблона или сообщения путем сканирования вывода dmesg, но этот параметр будет игнорировать регистр строк и сосредоточится только на строке, которую мы ищем. В результатах будут отображаться сообщения для комбинаций «USB» и «usb».

$ sudo dmesg | grep -i usb

Поиск сообщений, связанных с памятью, ОЗУ, жестким диском или USB-накопителем, с помощью команды grep с dmesg. Здесь grep используется с «sda», чтобы проверить, какие жесткие диски были обнаружены ядром. Команда sda используется для проверки наличия жесткого диска и отображает сообщения везде, где указана команда sda.

$ sudo dmesg | grep -i sda

Каждому сообщению, регистрируемому в кольцевом буфере ядра, назначается уровень. Уровень представляет значимость информации в сообщении. Уровни следующие:

  • emerg: Система непригодна для использования.
  • предупреждение: действия должны быть приняты немедленно.
  • крит: Критические условия.
  • err: Условия ошибки.
  • warn: Условия предупреждения.
  • уведомление: нормальное, но существенное состояние.
  • информация: информационная.
  • отладка: сообщения уровня отладки.

Извлечение сообщений с помощью параметра -l (уровень) с dmesg, за которым следует имя уровня. Здесь мы перечисляем все информационные сообщения, используя уровень «info» с командой dmesg, они будут отображать уведомления, которые необходимы и важны.

$ sudo dmesg -l info

Чтобы извлечь сообщения с несколькими уровнями журнала, мы должны объединить два или более уровня журнала. Здесь мы используем уровни журнала «отладка и уведомление» для извлечения сообщений.

$ sudo dmesg -l debug,notice

Другим примером объединения более чем одного уровня журнала является «ошибка и предупреждение» , где будут отображаться журналы ошибок и журналы предупреждений.

$ sudo dmesg --level=err,warn

Отображение сообщений dmesg для пользовательского интерфейса eth0, используйте параметр grep, за которым следует eth0

$ sudo dmesg | grep -i eth0

Фильтрация сообщений dmesg с использованием опции средства -f, где будут отображаться сообщения определенного «демона» средства.

$ sudo dmesg -f daemon

Опция -x (декодирование) используется для отображения объекта и уровня в виде префиксов каждой строки в удобочитаемом формате.

$ sudo dmesg -x