рекомендации

понедельник, 27 сентября 2021 г.

Руководство по команде dmesg для начинающих

Знаете ли вы, что ядро Linux загружает несколько драйверов устройств при загрузке системы? На самом деле, когда ваша система запущена и работает, и вы подключаете аппаратное устройство, то также загружается соответствующий драйвер устройства. Конечно, ядро также делает много других вещей. Что если вы хотите узнать информацию, связанную с этими действиями ядра?

Есть команда dmesg, которую вы можете использовать, если хотите получить доступ к сообщениям, выводимым ядром. В этом руководстве мы разберемся, как работает утилита dmesg, используя несколько простых для понимания примеров.


Команда Linux dmesg

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

dmesg [options]

И вот как справочная страница утилиты объясняет ее назначение:

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

Ниже приведены примеры в стиле вопрос/ответ, которые должны дать вам лучшее представление о том, как работает команда dmesg.

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

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

dmesg

Например, вот небольшая часть вывода команды, созданной в моем случае:



Q2. Как ограничить вывод только ошибками и предупреждениями?

Если вы запустите dmesg в своей системе, вы увидите, что она выводит множество информации. В зависимости от того, что вы ищете, вы можете фильтровать или ограничивать вывод. Со своей стороны, dmesg предлагает вам реализацию этой возможности с помощью «уровней». Ниже приводится полный список уровней (вместе с их объяснением):

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

Например, если вы хотите ограничить вывод только ошибками и предупреждениями, вы можете сделать это следующим образом:

dmesg --level=err,warn

В моем случае, вот часть вывода, который выдает указанная выше команда:



Q3. Как заставить dmesg выводить временные метки?

Иногда вам может понадобиться, чтобы с сообщениями, создаваемыми dmesg, была связана временная метка. Это можно сделать с помощью параметра командной строки -T, который создает удобочитаемые временные метки.

dmesg -T

Пример вывода:



Q4. Как заставить dmesg отображать информацию, специфичную для устройства?

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

dmesg | grep -i eth0

Пример вывода:



Q5. Как заставить dmesg отображать только сообщения пользователя?

Если вы хотите ограничить вывод dmesg только сообщениями в пользовательском пространстве, используйте параметр командной строки -u.

dmesg -u



Заключение

Согласен, dmesg - это не та команда, которая будет вам нужна каждый день. Но это инструмент, к которому можно обратиться, когда кто-то (к кому вы обратились за помощью по определенной теме) попросит вас предоставить сообщения ядра. Чаще всего я встречал этот случай на онлайн-форумах, где опытные пользователи запрашивают вывод ядра.

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

Комментариев нет:

Отправить комментарий