Как пользоваться dmesg

Когда система запущена и активна, ядро Linux записывает сообщения разного рода в кольцевой буфер ядра. В этих сообщениях содержатся данные относительно функционирования операционной системы. Так как буфер ядра имеет ограниченный объем памяти, он периодически переполняется информацией. Как только лимит памяти исчерпывается, система начинает перезаписывать старые записи журналов.

Для управления кольцевым буфером ядра разработана утилита dmesg. С её помощью пользователь может изучить загрузочные сообщения ядра, а также заняться устранением текущих проблем, возникающих в процессе работы определенного оборудования. Как и у любой другой программы, у данной утилиты есть определенные опции и причины применения.

В данной статье мы разберем, как работать с dmesg.

Синтаксис

Синтаксис команды выглядит следующим образом:

$ dmesg опции

Благодаря наличию многочисленных опций пользователь может упростить просмотр сохраненных сообщений и предпринять нужные меры. Далее рассмотрим основные опции утилиты:

  • Очищение буфера ядра: -C
  • Вывод сообщения из буфера с дальнейшим его удалением: -с
  • Вывод времени (сколько прошло между 2 сообщениями): -d
  • Вывод сообщений подсистем конкретной категории: -f
  • Включение удобного вывода: -H
  • Отображение сообщений ядра (без дополнительной информации): -k
  • Цветной вывод: -L
  • Ограничение вывода: -l
  • Вывод текстовой информации: -P
  • Печать сообщений в изначальном виде (с префиксами): -r
  • Чтение сообщений посредством Syslog: -S
  • Вывод времени в удобном для пользователя формате: -T
  • Скрыть данные о времени: -t
  • Демонстрация сообщений, поступающих от программ из пространства юзера Linux: -u
  • Ожидание новых сообщений без закрытия программы: -w
  • Вывод категории в удобном для пользователя формате: -x

Важно! Возвращаясь к опции -C (очистка буфера), важно отметить, что данная возможность доступна только для root и пользователей с привилегиями sudo.

Примеры использования

Разумеется, выше были упомянуты лишь самые основные и популярные опции утилиты DMESG. Развернутый перечень утилит можно открыть, воспользовавшись строкой терминала. Для этих целей пользователю необходимо задать:

$ man dmesg

Если пользователю нужно ознакомиться со всем сообщениями (ядро + система инициализации systemd), потребуется задать команду без добавления каких-либо опций. На практике это будет выглядеть так:

$ dmesg

dmesgДля ознакомления с полной временной меткой (она не предусмотрена по умолчанию), следует воспользоваться добавочной опцией:

$ dmesg -T

Бывает так, что нужно посмотреть информацию о сетевом интерфейсе. Например сетевая карта время от времени отключается. Для этого необходимо сначала узнать имя интерфейса, с помощью утилиты ip, затем отфильтровать список через grep.
$ ip a

ip a

$ dmesg | grep -i enp0s3

Данные о сетевом интерфейсе

Посредством популярной утилиты можно посмотреть состояние оборудования, которое будет проверено ядром Linux. В некоторых ситуациях нужно отфильтровывать данные. К примеру:

$ dmesg | grep CPU

Это позволит увидеть только те данные, которые относятся к CPU.

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

Заключение

Взаимодействие с утилитами значительно упрощает работу с Linux и всеми аналоговыми операционными системами. Программа dmesg – яркий тому пример. С ней просмотр и контроль буфера ядра становится примитивной задачей, а состояние используемого оборудования больше не является труднодоступной информацией для пользователя. Dmesg контролирует состояние процессора, конфигурации памяти, SCSI и даже USB.

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