Android

Команда Dmesg в Linux

Logrotate

Logrotate

Оглавление:

Anonim

Ядро Linux является ядром операционной системы, которая контролирует доступ к системным ресурсам, таким как ЦП, устройства ввода-вывода, физическая память и файловые системы. Ядро записывает различные сообщения в кольцевой буфер ядра во время процесса загрузки и во время работы системы. Эти сообщения содержат различную информацию о работе системы.

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

Утилита командной строки dmesg используется для печати и управления кольцевым буфером ядра в Linux и других Unix-подобных операционных системах. Это полезно для изучения загрузочных сообщений ядра и устранения проблем, связанных с оборудованием.

В этом уроке мы рассмотрим основы команды dmesg .

Использование команды dmesg

Синтаксис команды dmesg следующий:

dmesg

При вызове без каких-либо параметров dmesg записывает все сообщения из кольцевого буфера ядра в стандартный вывод:

dmesg

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

dmesg: read kernel buffer failed: Operation not permitted

Параметр ядра kernel.dmesg_restrict указывает, могут ли непривилегированные пользователи использовать dmesg для просмотра сообщений из буфера журнала ядра. Чтобы снять ограничения, установите его на ноль:

sudo sysctl -w kernel.dmesg_restrict=0

Обычно выходные данные содержат много строк информации, поэтому только последняя часть выходных данных является видимой. Чтобы увидеть одну страницу за раз, перенаправьте вывод на утилиту пейджера, такую ​​как less или more :

dmesg --color=always | less

--color=always используется для сохранения цветного вывода.

dmesg | grep -i usb

dmesg читает сообщения, сгенерированные ядром, из виртуального файла /proc/kmsg . Этот файл предоставляет интерфейс к кольцевому буферу ядра и может быть открыт только одним процессом. Если в вашей системе запущен процесс syslog и вы пытаетесь прочитать файл с помощью cat или less , команда зависнет.

Демон syslog выводит сообщения ядра в /var/log/dmesg , поэтому вы также можете использовать этот файл журнала:

cat /var/log/dmesg

Форматирование вывода dmesg

Команда dmesg предоставляет ряд опций, которые помогут вам отформатировать и отфильтровать вывод.

Одним из наиболее часто используемых параметров dmesg является -H ( --human ), который обеспечивает удобочитаемый вывод. Эта опция направляет вывод команды в пейджер:

dmesg -H

Чтобы напечатать удобочитаемые временные метки, используйте опцию -T ( --ctime ):

dmesg -T

IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

Формат отметок времени также может быть установлен с использованием --time-format опция, которая может быть ctime, reltime, delta, notime или iso. Например, чтобы использовать дельта-формат, введите:

dmesg --time-format=delta

Вы также можете объединить два или более вариантов:

dmesg -H -T

Чтобы просмотреть вывод команды dmesg в режиме реального времени, используйте параметр -w ( --follow ):

dmesg --follow

Фильтрация вывода dmesg

Вы можете ограничить вывод dmesg указанными объектами и уровнями.

Средство представляет процесс, который создал сообщение. dmesg поддерживает следующие средства dmesg журнала:

  • kern - сообщения ядра user - сообщения уровня пользователя mail - daemon системы mail почты - системные демоны auth - сообщения безопасности / авторизации syslog - внутренние сообщения syslogd lpr - news подсистемы принтера - подсистема сетевых новостей

--facility ( --facility Опция) позволяет ограничить вывод для определенных объектов. Опция принимает одно или несколько разделенных запятыми объектов.

Например, для отображения только сообщений ядра и системных демонов вы должны использовать:

dmesg -f kern, daemon

Каждое сообщение журнала связано с уровнем журнала, который показывает важность сообщения. dmesg поддерживает следующие уровни журнала:

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

--level ( --level ) опция ограничивает вывод определенными уровнями. Опция принимает один или несколько уровней, разделенных запятыми.

Следующая команда отображает только сообщения об ошибках и критические сообщения:

dmesg -l err, crit

Очистка кольцевого буфера

Опция -C ( --clear ) позволяет очистить кольцевой буфер:

sudo dmesg -C

Только root или пользователи с привилегиями sudo могут очистить буфер.

Чтобы напечатать содержимое буфера перед очисткой, используйте --read-clear -c ( --read-clear ):

sudo dmesg -c

dmesg > dmesg_messages

Вывод

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

Введите man dmesg в своем терминале для получения информации обо всех доступных опциях dmesg .

терминал ядра dmesg