Рубрика «Технологии»

Понедельник, 19 Июн 2023 в 13:53

Проблемы программистов

journalctl — это консольная утилита для просмотра системного журнала ОС Linux, поэтому перед вводом команд подключитесь к контроллеру по SSH или отладочный порт.

(далее…)

Четверг, 12 Май 2022 в 12:05

Руководство по команде 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

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

часть вывода команды dmesg --level=err,warn

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

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

dmesg -T

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

Пример вывода dmesg -T

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

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

dmesg | grep -i eth0

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

Пример вывода dmesg | grep -i eth0

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

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

dmesg -u

Пример вывода dmesg -u

Заключение

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

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

Цитаты великих

"Нельзя бояться того, чего вы хотите, поэтому стоит захотеть опасности, и страх улетучится. Нельзя бояться того, чего вы требуете, поэтому стоит потребовать опасности, и страх ретируется."

Андрей Курпатов

Я в Контакте