dmesg

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

dmesg (сокр. от англ. display message или англ. driver message) — команда, используемая в UNIX‐подобных операционных системах для вывода буфера сообщений ядра в стандартный поток вывода (stdout) (по умолчанию на экран).

Загрузка ОС[править | править вики-текст]

Первым делом в dmesg попадают сообщения о загрузке ядра ОС в память компьютера. А также сообщения о загрузке драйверов для соответствующего оборудования. Уровень детализации сообщений регулируется параметрами загрузчика.

После загрузки ОС[править | править вики-текст]

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

Представление информации[править | править вики-текст]

Все сообщения dmesg занимают несколько страниц, поэтому есть смысл использовать стандартный утилиты для работы с текстом, такие как more, tail, less или grep. Сообщения dmesg часто попадают в системный журнал через демон журналирования, такой как syslog. В Linux системах этот лог обычно находится в /var/log.

Лого[править | править вики-текст]

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

Некоторые аргументы (опции) утилиты dmesg[править | править вики-текст]

--decode, преобразует числовое значение уровней загрузки и параметры операции в понятные текстовые примечания

Фильтрация сообщений в соответствии с опциями --facility и --level. Например:

dmesg --level=err,warn

dmesg --facility=daemon,user

dmesg --facility=daemon --level=debug

-u, --userspace для вывода сообщений пользовательского уровня

-k, --kernel для вывода сообщений уровня ядра

-t, --notime для удаления из вывода временных отметок

-T, --ctime для вывода времени в формате, подобном ctime(). Однако этот ключ бесполезен после использования ждущего режима и выхода из него. (Для printk() после окончания ждущего режима ядро не использует обычное системное время и поэтому временные значения не изменяются.)

--show-delta для вывода длительности промежутка между сообщениями[1]

-c - Очистить содержимое буфера сообщений ядра после вывода.

-s [размер буфера] - Использовать для буфера сообщений ядра, буфер размером [размер буфера]. По умолчанию его размер 16392 байт.

-n [уровень] - Установить уровень, на котором сообщения системного журнала будут выводиться на консоль.

Например, -n 1 предотвращает вывод на консоль всех сообщений, за исключением явно тревожных.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Karel Zak. dmesg(1) changes for util-linux 2.20 (Wednesday, July 20, 2011).

Ссылки[править | править вики-текст]