Библиотека сайта rus-linux.net
Руководство по команде dmesg для начинающих
Оригинал: Linux dmesg Command Tutorial for Beginners (5 Examples)
Автор: Himanshu Arora
Дата публикации: 3 июля 2018 года
Перевод: А. Кривошей
Дата перевода: январь 2019 г.
Знаете ли вы, что ядро 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 с точки зрения начинающих. Более подробную информацию можно получить, изучив справочную страницу команды.