- Руководство по команде dmesg для начинающих
- Команда Linux dmesg
- Q1. Как использовать команду dmesg?
- Q2. Как ограничить вывод только ошибками и предупреждениями?
- Q3. Как заставить dmesg выводить временные метки?
- Q4. Как заставить dmesg отображать информацию, специфичную для устройства?
- Q5. Как заставить dmesg отображать только сообщения пользователя?
- Заключение
- 7 ‘dmesg’ Commands for Troubleshooting and Collecting Information of Linux Systems
- 1. List all loaded Drivers in Kernel
- 2. List all Detected Devices
- 3. Print Only First 20 Lines of Output
- 4. Print Only Last 20 Lines of Output
- 5. Search Detected Device or Particular String
- 6. Clear dmesg Buffer Logs
- 7. Monitoring dmesg in Real Time
- If You Appreciate What We Do Here On TecMint, You Should Consider:
- Как пользоваться dmesg
- Синтаксис и опции dmesg
- Примеры использования dmesg
- Выводы
- Команда Dmesg в Linux
- Dmesg Command in Linux
- В этом руководстве мы рассмотрим основы dmesg команды.
- Использование dmesg команды
- Форматирование dmesg вывода
- Фильтрация dmesg вывода
- Очистка кольцевого буфера
- Вывод
Руководство по команде dmesg для начинающих
Оригинал: Linux dmesg Command Tutorial for Beginners (5 Examples)
Автор: Himanshu Arora
Дата публикации: 3 июля 2018 года
Перевод: А. Кривошей
Дата перевода: январь 2019 г.
Знаете ли вы, что ядро Linux загружает несколько драйверов устройств при загрузке системы? На самом деле, когда ваша система запущена и работает, и вы подключаете аппаратное устройство, то также загружается соответствующий драйвер устройства. Конечно, ядро также делает много других вещей. Что если вы хотите узнать информацию, связанную с этими действиями ядра?
Есть команда dmesg, которую вы можете использовать, если хотите получить доступ к сообщениям, выводимым ядром. В этом руководстве мы разберемся, как работает утилита dmesg, используя несколько простых для понимания примеров.
Команда Linux dmesg
Команда dmesg позволяет вам печатать или управлять буфером кольца ядра. Ниже ее синтаксис:
И вот как справочная страница утилиты объясняет ее назначение:
dmesg используется для проверки содержимого или управления буфером кольца ядра. Действие по умолчанию — отобразить все сообщения из буфера кольца ядра.
Ниже приведены примеры в стиле вопрос/ответ, которые должны дать вам лучшее представление о том, как работает команда dmesg.
Q1. Как использовать команду dmesg?
Вы можете для начала ввести команду dmesg без опций командной строки.
Например, вот небольшая часть вывода команды, созданной в моем случае:
Q2. Как ограничить вывод только ошибками и предупреждениями?
Если вы запустите dmesg в своей системе, вы увидите, что она выводит множество информации. В зависимости от того, что вы ищете, вы можете фильтровать или ограничивать вывод. Со своей стороны, dmesg предлагает вам реализацию этой возможности с помощью «уровней». Ниже приводится полный список уровней (вместе с их объяснением):
emerg — система не работает;
alert — действие должно быть выполнено немедленно;
crit — критические условия;
err — условия ошибок;
warn — условия предупреждениий;
notice — нормальное, но существенное состояние;
info — информационный;
debug — сообщения уровня отладки.
Например, если вы хотите ограничить вывод только ошибками и предупреждениями, вы можете сделать это следующим образом:
В моем случае, вот часть вывода, который выдает указанная выше команда:
Q3. Как заставить dmesg выводить временные метки?
Иногда вам может понадобиться, чтобы с сообщениями, создаваемыми dmesg, была связана временная метка. Это можно сделать с помощью параметра командной строки -T, который создает удобочитаемые временные метки.
Q4. Как заставить dmesg отображать информацию, специфичную для устройства?
Предположим, вы хотите, чтобы dmesg отображал только информацию, связанную с интерфейсом eth0. Вот как вы можете это сделать:
Q5. Как заставить dmesg отображать только сообщения пользователя?
Если вы хотите ограничить вывод dmesg только сообщениями в пользовательском пространстве, используйте параметр командной строки -u.
Заключение
Согласен, dmesg — это не та команда, которая будет вам нужна каждый день. Но это инструмент, к которому можно обратиться, когда кто-то (к кому вы обратились за помощью по определенной теме) попросит вас предоставить сообщения ядра. Чаще всего я встречал этот случай на онлайн-форумах, где опытные пользователи запрашивают вывод ядра.
Здесь, в этом уроке, мы обсудили команду dmesg с точки зрения начинающих. Более подробную информацию можно получить, изучив справочную страницу команды.
Источник
7 ‘dmesg’ Commands for Troubleshooting and Collecting Information of Linux Systems
The ‘dmesg‘ command displays the messages from the kernel ring buffer. A system passes multiple runlevel from where we can get lot of information like system architecture, cpu, attached device, RAM etc. When computer boots up, a kernel (core of an operating system) is loaded into memory. During that period number of messages are being displayed where we can see hardware devices detected by kernel.
dmesg Command Examples
The messages are very important in terms of diagnosing purpose in case of device failure. When we connect or disconnect hardware device on the system, with the help of dmesg command we come to know detected or disconnected information on the fly. The dmesg command is available on most Linux and Unix based Operating System.
Let’s throw some light on most famous tool called ‘dmesg’ command with their practical examples as discussed below. The exact syntax of dmesg as follows.
1. List all loaded Drivers in Kernel
We can use text-manipulation tools i.e. ‘more‘, ‘tail‘, ‘less‘ or ‘grep‘ with dmesg command. As output of dmesg log won’t fit on a single page, using dmesg with pipe more or less command will display logs in a single page.
Sample Output
2. List all Detected Devices
To discover which hard disks has been detected by kernel, you can search for the keyword “sda” along with “grep” like shown below.
NOTE: The ‘sda’ first SATA hard drive, ‘sdb’ is the second SATA hard drive and so on. Search with ‘hda’ or ‘hdb’ in the case of IDE hard drive.
3. Print Only First 20 Lines of Output
The ‘head’ along with dmesg will show starting lines i.e. ‘dmesg | head -20’ will print only 20 lines from the starting point.
4. Print Only Last 20 Lines of Output
The ‘tail’ along with dmesg command will print only 20 last lines, this is useful in case we insert removable device.
5. Search Detected Device or Particular String
It’s difficult to search particular string due to length of dmesg output. So, filter the lines with are having string like ‘usb‘ ‘dma‘ ‘tty‘ and ‘memory‘ etc. The ‘-i’ option instruct to grep command to ignore the case (upper or lower case letters).
Sample Output
6. Clear dmesg Buffer Logs
Yes, we can clear dmesg logs if required with below command. It will clear dmesg ring buffer message logs till you executed the command below. Still you can view logs stored in ‘/var/log/dmesg‘ files. If you connect any device will generate dmesg output.
7. Monitoring dmesg in Real Time
Some distro allows command ‘tail -f /var/log/dmesg’ as well for real time dmesg monitoring.
Conclusion: The dmesg command is useful as dmesg records all the system changes done or occur in real time. As always you can man dmesg to get more information.
If You Appreciate What We Do Here On TecMint, You Should Consider:
TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.
If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.
We are thankful for your never ending support.
Источник
Как пользоваться dmesg
Ядро Linux, как и другие программы может и выводит различные информационные сообщения и сообщения об ошибках. Все они выводятся в буфер сообщения ядра, так называемый kernel ring buffer. Основная причина существования этого буфера — надо сохранить сообщения, которые возникают во время загрузки системы пока сервис Syslog ещё не запущен и не может их собирать.
Для получения сообщений из этого буфера можно просто прочитать файл /var/log/dmesg. Однако, более удобно это можно сделать с помощью команды dmesg. В этой статье мы рассмотрим как пользоваться dmesg. Разберемся с опциями утилиты, а также приведем примеры работы с ней.
Синтаксис и опции dmesg
Синтаксис команды dmesg очень простой. Надо набрать имя команды и если необходимо, то опции:
$ dmesg опции
Опции позволяют управлять выводом, добавлять или скрывать дополнительную информацию и делать просмотр сообщений более удобным. Вот они:
- -C, —clear — очистить буфер сообщений ядра;
- -c, —read-clear — вывести сообщения из буфера ядра, а затем очистить его;
- -d, —show-delta — выводит время прошедшее между двумя сообщениями;
- -f, —facility — выводить только сообщения от подсистем определенной категории;
- -H, —human — включить вывод, удобный для человека;
- -k, —kernel — отображать только сообщения ядра;
- -L, —color — сделать вывод цветным, автоматически включается при использовании опции -H;
- -l, —level — ограничить вывод указанным уровнем подробности;
- -P, —nopager — выводить информацию обычным текстом, не добавлять постраничную навигацию;
- -r, —raw — печатать сообщения как есть, не убирая служебные префиксы;
- -S, —syslog — использовать Syslog для чтения сообщений от ядра, по умолчанию используется файл /dev/kmsg;
- -T, —ctime — выводить время в удобном для человека формате;
- -t, —notime — не выводить время поступления сообщения;
- -u, —userspace — показывать только сообщения от программ из пространства пользователя;
- -w, —follow — после вывода всех сообщений не завершать программу, а ждать новых;
- -x, —decode — выводить категорию и уровень журналирования в удобном для чтения формате.
Это далеко не все опции, а только самые интересные. Если вы хотите посмотреть другие, воспользуйтесь такой командой:
Поддерживаемые категории журналирования:
- kern — сообщения от ядра;
- user — сообщения от программ пространства пользователя;
- mail — сообщения от сервисов почты;
- daemon — сообщения от системных служб;
- auth — сообщения безопасности и информации об авторизации пользователей;
- syslog — сообщения, отправляемые сервисом Syslogd;
- lpr — сообщения от служб печати.
А вот доступные уровни журналирования:
- emerg — ошибка привела к неработоспособности системы;
- alert — требуется вмешательство пользователя;
- crit — критическая ошибка;
- err — обычная ошибка;
- warn — предупреждение;
- notine — замечание;
- info — информация;
- debug — отладочное сообщение.
Примеры использования dmesg
Как вы уже поняли команда dmesg показывает не только сообщения от ядра, но и другие сообщения от системных служб, например, от системы инициализации systemd. Чтобы вывести вообще все сообщения выполните команду без опций:
По умолчанию перед сообщением выводится только временной сдвиг от загрузки системы. Если вы хотите полную временную метку, используйте опцию -T:
Во время загрузки ядро тестирует оборудование и выводит подробную информацию о нём в буфер сообщений ядра. Таким образом, с помощью dmesg можно посмотреть информацию об оборудовании, просто отфильтруйте нужные данные, например CPU:
dmesg | grep CPU
Для того чтобы выводить только сообщения от ядра, а не всё под ряд, используйте опцию -k:
Теперь в выводе утилиты не будет сообщений от Systemd. Если вы хотите выводить все сообщения ядра в реальном времени, используйте опцию -w:
Для того чтобы добавить цвет к выводу и включить постраничную навигацию вместо вывода текста одним большим куском используйте опцию -H:
Для того чтобы вывести категорию сообщения и его уровень логирования используйте опцию -x:
Если вас интересуют только ошибки, можно отсеять их по уровню журналирования:
dmesg -l crit,err
Или только информационные сообщения:
Можно вывести только сообщения, которые попали сюда из пространства пользователя, для этого используйте опцию -u:
Или же отфильтруйте категории user и daemon с помощью опции -f:
dmesg -f user,daemon
Аналогичным образом вы можете фильтровать и другие категории. Если вы хотите очистить буфер сообщений ядра, используйте опцию -C. При следующем запуске dmesg там будет пусто:
Выводы
В этой небольшой статье мы разобрали как пользоваться dmesg. Теперь вы знаете за что отвечает эта утилита, а также какие опции можно использовать.
Источник
Команда Dmesg в Linux
Dmesg Command in Linux
В этом руководстве мы рассмотрим основы dmesg команды.
Ядро Linux — это ядро операционной системы, которое контролирует доступ к системным ресурсам, таким как процессор, устройства ввода-вывода, физическая память и файловые системы. Ядро записывает различные сообщения в кольцевой буфер ядра в процессе загрузки и во время работы системы. Эти сообщения содержат различную информацию о работе системы.
Кольцевой буфер ядра — это часть физической памяти, которая содержит сообщения журнала ядра. Он имеет фиксированный размер, что означает, что после заполнения буфера старые записи журналов перезаписываются.
dmesg — Утилита командной строки используется для печати и управления кольцевого буфера ядра в Linux и других Unix-подобных операционных систем. Это полезно для изучения загрузочных сообщений ядра и устранения проблем, связанных с оборудованием.
Использование dmesg команды
Синтаксис dmesg команды следующий:
При вызове без каких-либо параметров dmesg записывает все сообщения из кольцевого буфера ядра в стандартный вывод:
По умолчанию все пользователи могут запускать dmesg команду. Однако в некоторых системах доступ к ним dmesg может быть ограничен для пользователей без полномочий root. В этой ситуации при вызове dmesg вы получите сообщение об ошибке, как показано ниже:
Параметр ядра kernel.dmesg_restrict указывает, могут ли непривилегированные пользователи dmesg просматривать сообщения из буфера журнала ядра. Чтобы снять ограничения, установите его на ноль:
Обычно выходные данные содержат много строк информации, так что только последняя часть выходных данных является видимой. Чтобы увидеть одну страницу за раз, перенаправьте вывод в утилиту пейджера, такую как less или more :
—color=always Используется для сохранения цветного вывода.
Если вы хотите фильтровать сообщения буфера, используйте grep . Например, чтобы просмотреть только сообщения, связанные с USB, вы должны набрать:
dmesg читает сообщения, сгенерированные ядром, из /proc/kmsg виртуального файла. Этот файл предоставляет интерфейс к кольцевому буферу ядра и может быть открыт только одним процессом. Если syslog в вашей системе запущен процесс, и вы пытаетесь прочитать файл с помощью cat , или less , команда зависнет.
syslog Демон отвалов сообщения ядра /var/log/dmesg , так что вы можете использовать этот файл журнала:
Форматирование dmesg вывода
Команда dmesg предоставляет ряд опций, которые помогут вам отформатировать и отфильтровать вывод.
Одна из наиболее часто используемых опций dmesg — это -H ( —human ), которая обеспечивает удобочитаемый вывод. Эта опция направляет вывод команды в пейджер:
Для печати удобочитаемых временных меток используйте опцию -T ( —ctime ):
Формат —time-format отметок времени также может быть установлен с помощью параметра, который может быть ctime, reltime, delta, notime или iso. Например, чтобы использовать дельта-формат, введите:
Вы также можете объединить два или более вариантов:
Чтобы просмотреть вывод dmesg команды в режиме реального времени, используйте параметр -w ( —follow ):
Фильтрация dmesg вывода
Вы можете ограничить dmesg вывод данными объектами и уровнями.
Средство представляет процесс, который создал сообщение. dmesg поддерживает следующие возможности журнала:
- kern — сообщения ядра
- user — сообщения уровня пользователя
- mail — почтовая система
- daemon — системные демоны
- auth — сообщения безопасности / авторизации
- syslog — внутренние сообщения syslogd
- lpr — подсистема линейного принтера
- news — подсистема сетевых новостей
Опция -f ( —facility
) позволяет ограничить вывод определенными объектами. Опция принимает одно или несколько разделенных запятыми объектов.
Например, для отображения только сообщений ядра и системных демонов вы должны использовать:
Каждое сообщение журнала связано с уровнем журнала, который показывает важность сообщения. dmesg поддерживает следующие уровни журнала:
- emerg — система неработоспособна
- alert — действие должно быть предпринято немедленно
- crit — критические условия
- err — условия ошибки
- warn — условия предупреждения
- notice — нормальное, но значимое состояние
- info — информационный
- debug — сообщения уровня отладки
Опция -l ( —level
) ограничивает вывод определенными уровнями. Опция принимает один или несколько уровней, разделенных запятыми.
Следующая команда отображает только сообщения об ошибках и критические сообщения:
Очистка кольцевого буфера
Опция -C ( —clear ) позволяет очистить кольцевой буфер:
Только root или пользователи с привилегиями sudo могут очистить буфер.
Чтобы распечатать содержимое буфера перед очисткой, используйте параметр -c ( —read-clear ):
Если вы хотите сохранить текущие dmesg журналы в файле перед его очисткой, перенаправьте вывод в файл:
Вывод
Команда dmesg позволяет вам просматривать и контролировать кольцевой буфер ядра. Это может быть очень полезно при устранении проблем с ядром или оборудованием.
Введите man dmesg в своем терминале информацию о всех доступных dmesg опциях.
Источник