Рубрика «Linux»

Четверг, 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 с точки зрения начинающих. Более подробную информацию можно получить, изучив справочную страницу команды.

Понедельник, 25 Апр 2022 в 12:36

GitHub runner Server certificate verification failed

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates -y 
sudo update-ca-certificates

 

Config and log locations on a Debian and Ubuntu

Service Config Log
Apache /etc/apache2/apache2.conf
/etc/apache2/conf.d/*
/home/$user/conf/web/apache2.conf
/home/$user/conf/web/sapache2.conf (ssl)
/var/log/apache2/access.log
/var/log/apache2/error.log
/var/log/apache2/domains/$domain.log
/var/log/apache2/domains/$domain.error.log
PHP /etc/php5/apache2/php.ini
/etc/php5/conf.d/*
/var/log/apache2/domains/$domain.error.log
Nginx /etc/nginx/nginx.conf
/etc/nginx/conf.d/*
/home/$user/conf/web/nginx.conf
/home/$user/conf/web/snginx.conf (ssl)
/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/apache2/domains/$domain.log
/var/log/apache2/domains/$domain.error.log
Named /etc/bind/named.conf
/home/$user/conf/dns/$domain.db
/var/log/syslog
Exim /etc/exim4/exim4.conf.template
/home/$user/conf/mail/$domain/*
/var/log/exim4/mainlog
/var/log/exim/rejectlog
/var/log/exim/paniclog
Dovecot /etc/dovecot/dovecot.conf
/etc/dovecot/conf.d/*
/home/$user/conf/mail/$domain/passwd
/var/log/dovecot.log
ClamAV /etc/clamav/clamd.conf
/etc/clamav/freshclam.conf
/var/log/clamav/clamav.log
/var/log/clamav/freshclam.log
/var/log/exim4/mainlog
SpamAssassin /etc/spamassassin/local.cf /var/log/exim4/mainlog
Roundcube /etc/roundcube/main.inc.php
/etc/roundcube/db.inc.php
/etc/apache2/conf.d/roundcube
/var/log/roundcube/*
/var/log/apache2/domains/$domain.log
/var/log/apache2/domains/$domain.error.log
MySQL /etc/mysql/my.cnf
/root/.my.cnf
/usr/local/vesta/conf/mysql.conf
/var/log/mysql.log
/var/log/mysql/error.log
phpMyAdmin /etc/phpmyadmin/config.inc.php
/etc/apache2/conf.d/phpmyadmin.conf
/var/log/apache2/domains/$domain.log
/var/log/apache2/domains/$domain.error.log
PostgreSQL /etc/postgresql/*/main/postgresql.conf
/etc/postgresql/*/main//pg_hba.conf
/usr/local/vesta/conf/pgsql.conf
/var/log/postgresql/postgresql-*-main.log
phpPgAdmin /etc/phppgadmin/config.inc.php
/etc/apache2/conf.d/phppgadmin
/var/log/apache2/domains/$domain.log
/var/log/apache2/domains/$domain.error.log
Vsftpd /etc/vsftpd.conf /var/log/xferlog
/var/log/syslog
Cron /etc/crontab /var/log/syslog
Vesta /usr/local/vesta/conf/vesta.conf
/usr/local/vesta/conf/mysql.conf
/usr/local/vesta/conf/pgsql.conf
/usr/local/vesta/conf/ftp.backup.conf
/usr/local/vesta/conf/dns-cluster.conf
/usr/local/vesta/nginx/conf/nginx.conf
/usr/local/vesta/php/lib/php.ini
/usr/local/vesta/php/etc/php-fpm.conf
/var/log/vesta/system.log
/var/log/vesta/backup.log
/var/log/vesta/auth.log
/var/log/vesta/nginx-error.log
/usr/local/vesta/php/var/log/php-fpm.log