Получение информации об аппаратном обеспечении Linux-компьютера без использования отвертки. Узнаем информацию о «железе» в Терминале Dmesg linux что делает
Именно на этапе загрузки может происходить много ошибок в сервисах или оборудовании. Просмотр этих сообщений может быть очень полезным.Но они пробегают очень быстро и мы не всегда можем успеть их прочитать. Но все они могут быть просмотрены с помощью команды dmesg .
Dmesg - что это за утилита и с чем ее едят?
Во время загрузки системы, пока загружается ядро, система инициализации, драйвера, модули ядра, инициализируется оборудование на экран выводится большое количество сообщений, которые отображают информацию о состоянии ядра, процессе загрузки, а также состоянии устройств.
Именно на этапе загрузки может происходить много ошибок в сервисах или оборудовании. Просмотр этих сообщений может быть очень полезным.Но они пробегают очень быстро и мы не всегда можем успеть их прочитать. Но все они могут быть просмотрены с помощью команды dmesg.
1. Просмотр сообщений во время загрузки
Выполнив команду dmesg с правами суперпользователя вы получите все сообщения, которые выводило ядро во время загрузки. Здесь вы можете увидеть очень много полезной информации. Вы можете просто просматривать их по одной строчке и пытаться понять, что они значат. Теперь, когда вы знаете как выглядят сообщения при загрузке, вы сможете легко разобраться со многими проблемами, если те возникнут.
$ dmesg | more [ 0.000000] microcode: CPU0 microcode updated early to revisio n 0x29, date = 2013-06-12 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 4.1.20-11-default () (gcc version 4.8.5 (SUSE Linux)) #1 SMP PREEMPT Fri Mar 18 14:42:07 UTC 2016 (0a392b2)
2. Просмотр памяти
С помощью dmesg вы можете посмотреть количество доступной в системе памяти:
$ dmesg | grep Memory
0.000000] Memory: 3848228K/4006256K available (6567K kernel code, 1085K rwdata, 4852K rodata, 1560K init, 1520K bss, 158028K reserved, 0K cma-reserved)
3. Просмотр состояния сетевых адаптеров
Поскольку в dmesg сохраняются все сообщения о состоянии устройств, мы можем посмотреть состояние сетевого адаптера, или, возможно, ошибки которые возникли при его инициализации:
$ dmesg | grep eth [ 101.043873] tg3 0000:02:00.0 eth0: Link is up at 100 Mbps, full duplex [ 101.043885] tg3 0000:02:00.0 eth0: Flow control is off for TX and off for RX [ 101.043889] tg3 0000:02:00.0 eth0: EEE is disabled [ 101.043909] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
4. Изменение размера буфера dmesg
Если вы считаете, что стандартного размера буфера dmesg недостаточно, вы можете изменить его размер, чтобы увеличить количество сообщений, которые могут там находиться одновременно. Для этого достаточно отредактировать файл и перезагрузить компьютер.
$ vi /boot/config-4.1.20-11-default CONFIG_LOG_BUF_SHIFT=18
Измените значение параметра этой строки на нужное, по умолчанию у меня используется 18, это значит что будет создан буфер размером 18 килобайт. Но вы можете указать размер буфера, какой захотите.
5. Очистить буфер dmesg
Иногда может понадобится очистить буфер Dmesg, чтобы ненужные сообщения не путались под руками. Вы можете это сделать следующей командой:
$ dmesg -c
Теперь если еще раз выполнить команду dmesg, буфер будет пуст.
6. Дата и время в dmesg
Как видите, по умолчанию в dmesg нет никаких дат, используется просто метка, сдвиг времени от начала загрузки. Но также есть возможность увидеть полноценную дату и время каждого сообщения. Для этого смотрите файл /var/log/kern.log:
$ dmesg | grep "L2 cache" Oct 18 23:55:40 ubuntu kernel: [ 0.014681] CPU: L2 cache: 2048K
Чтобы все работало должна быть настроена и запущенна служба klogd.
7. Просмотр ошибок dmesg
Вот такой нехитрой комбинацией вы можете посмотреть все ошибки, произошедшие во время загрузки или работы системы:
$ dmesg | grep error
Рассмотрим небольшой пример. Вот допустим, у меня не работает Wifi. Я знаю что адаптер в компьютере есть, он включен и в Windows все работает. Но сейчас никак. Смотрим лог dmesg и видим:
[ 21.772824] b43-phy0 ERROR: Firmware file "b43/ucode15.fw" not found [ 21.772842] b43-phy0 ERROR: Firmware file "b43-open/ucode15.fw" not found [ 21.772852] b43-phy0 ERROR: Please open a terminal and enter the command "sudo /usr/sbin/install_bcm43xx_firmware" to download the correct firmware for this driver version. For an off-line installation, go to and follow the instructions in the "Installing firmware from RPM packages" section.
Из сообщения мы понимаем, что проблема здесь в прошивке, и система нам даже сообщает с помощью какой команды ее можно решить, или где почитать про настройку этого дела и скачать нужные файлы. Таким образом, проблема которая казалась нерешаемой, решилась за несколько минут. Просмотр логов Linux - очень полезная вещь, не забывайте этим пользоваться. Вот и все, если у вас остались вопросы, пишите в комментариях!
Системные администраторы, да и обычные пользователи Linux, часто должны смотреть лог файлы для устранения неполадок. На самом деле, это первое, что должен сделать любой сисадмин при возникновении любой ошибки в системе.
Сама операционная система Linux и работающие приложения генерируют различные типы сообщений, которые регистрируются в различных файлах журналов. В Linux используются специальное программное обеспечение, файлы и директории для хранения лог файлов. Знание в каких файлах находятся логи каких программ поможет вам сэкономить время и быстрее решить проблему.
В этой статье мы рассмотрим основные части системы логирования в Linux, файлы логов, а также утилиты, с помощью которых можно посмотреть логи Linux.
Большинство файлов логов Linux находятся в папке /var/log/ Вы можете список файлов логов для вашей системы с помощью команды ls:
Rw-r--r-- 1 root root 52198 май 10 11:03 alternatives.log
drwxr-x--- 2 root root 4096 ноя 14 15:07 apache2
drwxr-xr-x 2 root root 4096 апр 25 12:31 apparmor
drwx------ 2 root root 4096 май 5 10:15 audit
-rw-r--r-- 1 root root 33100 май 10 10:33 boot.log
Ниже мы рассмотрим 20 различных файлов логов Linux, размещенных в каталоге /var/log/. Некоторых из этих логов встречаются только в определенных дистрибутивах, например, dpkg.log встречается только в системах, основанных на Debian.
/var/log/messages - содержит глобальные системные логи Linux, в том числе те, которые регистрируются при запуске системы. В этот лог записываются несколько типов сообщений: это почта, cron, различные сервисы, ядро, аутентификация и другие.
/var/log/dmesg - содержит сообщения, полученные от ядра. Регистрирует много сообщений еще на этапе загрузки, в них отображается информация об аппаратных устройствах, которые инициализируются в процессе загрузки. Можно сказать это еще один лог системы Linux. Количество сообщений в логе ограничено, и когда файл будет переполнен, с каждым новым сообщением старые будут перезаписаны. Вы также можете посмотреть сообщения из этого лога с помощью команды dmseg.
/var/log/auth.log - содержит информацию об авторизации пользователей в системе, включая пользовательские логины и механизмы аутентификации, которые были использованы.
/var/log/boot.log - Содержит информацию, которая регистрируется при загрузке системы.
/var/log/daemon.log - Включает сообщения от различных фоновых демонов
/var/log/kern.log - Тоже содержит сообщения от ядра, полезны при устранении ошибок пользовательских модулей, встроенных в ядро.
/var/log/lastlog - Отображает информацию о последней сессии всех пользователей. Это нетекстовый файл, для его просмотра необходимо использовать команду lastlog.
/var/log/maillog /var/log/mail.log - журналы сервера электронной почты, запущенного в системе.
/var/log/user.log - Информация из всех журналов на уровне пользователей.
/var/log/Xorg.x.log - Лог сообщений Х сервера.
/var/log/alternatives.log - Информация о работе программы update-alternatives. Это символические ссылки на команды или библиотеки по умолчанию.
/var/log/btmp - лог файл Linux содержит информацию о неудачных попытках входа. Для просмотра файла удобно использовать команду last -f /var/log/btmp
/var/log/cups - Все сообщения, связанные с печатью и принтерами.
/var/log/anaconda.log - все сообщения, зарегистрированные при установке сохраняются в этом файле
/var/log/yum.log - регистрирует всю информацию об установке пакетов с помощью Yum.
/var/log/cron - Всякий раз когда демон Cron запускает выполнения программы, он записывает отчет и сообщения самой программы в этом файле.
/var/log/secure - содержит информацию, относящуюся к аутентификации и авторизации. Например, SSHd регистрирует здесь все, в том числе неудачные попытки входа в систему.
/var/log/wtmp или /var/log/utmp - системные логи Linux, содержат журнал входов пользователей в систему. С помощью команды wtmp вы можете узнать кто и когда вошел в систему.
/var/log/faillog - лог системы linux, содержит неудачные попытки входа в систему. Используйте команду faillog, чтобы отобразить содержимое этого файла.
/var/log/mysqld.log - файлы логов Linux от сервера баз данных MySQL.
/var/log/httpd/ или /var/log/apache2 - лог файлы linux11 веб-сервера Apache. Логи доступа находятся в файле access_log, а ошибок в error_log
/var/log/lighttpd/ - логи linux веб-сервера lighttpd
/var/log/conman/ - файлы логов клиента ConMan,
/var/log/mail/ - в этом каталоге содержатся дополнительные логи почтового сервера
/var/log/prelink/ - Программа Prelink связывает библиотеки и исполняемые файлы, чтобы ускорить процесс их загрузки. /var/log/prelink/prelink.log содержит информацию о.so файлах, которые были изменены программой.
/var/log/audit/ - Содержит информацию, созданную демоном аудита auditd.
/var/log/setroubleshoot/ - SE Linux использует демон setroubleshootd (SE Trouble Shoot Daemon) для уведомления о проблемах с безопасностью. В этом журнале находятся сообщения этой программы.
/var/log/samba/ - содержит информацию и журналы файлового сервера Samba, который используется для подключения к общим папкам Windows.
/var/log/sa/ - Содержит.cap файлы, собранные пакетом Sysstat.
/var/log/sssd/ - Используется системным демоном безопасности, который управляет удаленным доступом к каталогам и механизмами аутентификации.
Просмотр логов в Linux
Чтобы посмотреть логи на Linux удобно использовать несколько утилит командной строки Linux. Это может быть любой текстовый редактор, или специальная утилита. Скорее всего, вам понадобятся права суперпользователя для того чтобы посмотреть логи в Linux. Вот команды, которые чаще всего используются для этих целей:
- zgrep
- zmore
Я не буду останавливаться подробно на каждой из этих команд, поскольку большинство из них уже подробно рассмотрены на нашем сайте. Но приведу несколько примеров. Просмотр логов Linux выполняется очень просто:
Смотрим лог /var/log/messages, с возможностью прокрутки:
less /var/log/messages
Просмотр логов Linux, в реальном времени:
tail -f /var/log/messages
Открываем лог файл dmesg:
cat /var/log/dmesg
Первые строки dmesg:
head /var/log/dmesg
Выводим только ошибки из /var/log/messages:
grep -i error /var/log/messages
Кроме того, посмотреть логи на linux можно и с помощью графических утилит. Программа System Log Viewer может быть использована для удобного просмотра и отслеживания системных журналов на ноутбуке или персональном компьютере с Linux.
Вы можете установить программу в любой системе с установленным X сервером. Также для просмотра логов может использоваться любой графический тестовый редактор.
Выводы
В каталоге /var/log вы можете найти всю необходимую информацию о работе Linux. Из сегодняшней статьи вы достаточно узнали, чтобы знать где искать, и что искать. Теперь просмотр логов в Linux не вызовет у вас проблем. Если остались вопросы, задавайте в комментариях!
В данной статье я хочу написать о консольных программах, которые помогут выдать полную информацию о “железе” вашего ПК (фирма-изготовитель, марка, ID устройства и другие данные про оборудование). Многие пользователи, которые перешли в Линукс с ОС корпорации зла, привыкли работать в графических программах, но с годами работы в Linux понимаешь, что в Терминале все работает быстрее, выдаваемая информация полнее и гибче.
Утилита lspci — утилита Unix, которая выводит детальную информацию о всех PCI шинах и устройствах на них. Утилита lspci сначала читает информацию с PCI-шины, а потом дополнительную информацию ищет в собственной базе данных, которая находится в файле /usr/share/hwdata/pci.ids и содержит такие данные как идентификатор оборудования, производитель, устройства, классы и подклассы. Чтобы запустить программу выполните в Терминале:
lspci
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
03:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
04:00.0 SATA controller: JMicron Technology Corp. JMB362 SATA Controller (rev 10)
05:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
06:00.0 SATA controller: JMicron Technology Corp. JMB362 SATA Controller (rev 10)
07:06.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 IEEE 1394 OHCI Controller (rev c0)
Чтобы получить расширенную информацию выполните:
lspci -v
03:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller (prog-if 30 )
Flags: bus master, fast devsel, latency 0, IRQ 46
Memory at fe500000 (64-bit, non-prefetchable)
Capabilities:
05:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller (prog-if 30 )
Subsystem: ASUSTeK Computer Inc. P8B WS Motherboard
Flags: bus master, fast devsel, latency 0, IRQ 50
Memory at fe300000 (64-bit, non-prefetchable)
Capabilities:
Kernel driver in use: xhci_hcd
07:05.0 Multimedia video controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
Flags: bus master, medium devsel, latency 32, IRQ 20
Memory at fb000000 (32-bit, non-prefetchable)
Capabilities:
Kernel driver in use: cx8800
07:06.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 IEEE 1394 OHCI Controller (rev c0) (prog-if 10 )
Subsystem: ASUSTeK Computer Inc. Motherboard
Flags: bus master, medium devsel, latency 32, IRQ 21
Memory at fc000000 (32-bit, non-prefetchable)
I/O ports at a000
Capabilities:
Kernel driver in use: firewire_ohci
В итоге текста станет намного больше, но и информация про оборудование будет более объемная. Можно даже узнать, например, номер IRQ, на котором висит нужное устройство. Если нужно узнать информацию про конкретное оборудование, например видео карту Nvidia, тогда нужно применить команду поиска с командой grep. В итоге наша команда будет следующей:
lspci | grep NVIDIA
Следует обратить внимание на то, что команда grep чувствительна к регистру символов, поэтому если с первого разу вы не нашли нужную информацию, то следует менять слова для поиска, например: nvidia, NVIDIA либо часть слова — idia или IDIA.
Вывод команды был следующий:
01:00.0 VGA compatible controller: NVIDIA Corporation GF108 (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)
Если хотите получить информацию про оборудование в текстовый файл, то выполните команду:
lspci > lspci.txt
В итоге в вашем Домашнем каталоге появится текстовый файлик lspci.txt
Если нужно получить список всех устройств в системе, в том числе USB и SCSI, конфигурация памяти, узнать тип процессора, то можно воспользоваться программой dmesg . Она выводит список всего оборудования, которое будет обнаружено ядром системы.
Выполните команду в Терминале:
dmesg
Если выполнить команду:
dmesg | less
то список найденного оборудования будет весьма большим. Поэтому для анализа всей информации советую сохранить вывод этой команды в текстовый файл. Для этого выполните команду:
dmesg | less > dmesg.txt
Выходные данные dmesg можно также фильтровать для поиска нужных устройств. Следующая команда покажет список всех устройств USB в системе:
dmesg | grep -i usb
Также можно использовать утилиту lshw . Если не установлена, то выполните команду:
sudo apt-get install lshw
Чтобы ее запустить выполните команду:
sudo lshw
Программа выводит структурированный список оборудования вместе с информацией об устройствах. Информация получается весьма емкой и полезный. Часть информации из вывода утилиты:
*-cdrom
описание: DVD-RAM writer
продукт: DRW-24B5ST
производитель: ASUS
физический ID: 0.0.0
сведения о шине: scsi@3:0.0.0
логическое имя: /dev/sr1
версия: 1.00
возможности: removable audio cd-r cd-rw dvd dvd-r dvd-ram
конфигурация: ansiversion=5 mount.fstype=iso9660 mount.options=ro,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500 state=mounted status=ready
*-medium
физический ID: 0
логическое имя: /dev/sr1
логическое имя: /media/dm/disk
конфигурация: mount.fstype=iso9660 mount.options=ro,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500 state=mounted
Еще можно вытянуть мнго полезной информации из системного каталога /proc. Он является неким «слепком» состояния системы и её переменных, в котором хранится очень много полезной информации о системе, а именно: уровень заряда батарей ноутбука, инфа о процессоре, скорости вращения вентиляторов, информация о подключённых устройствах, а также многое чего еще. Чтобы просмотреть какие файлы находятся в каталоге /proc нужно выполнить команду:
ls /proc/
Чтобы узнать информацию о процессоре выполните команду:
cat /proc/cpuinfo
В моем случае вывод был такой (показана лишь часть текстовой информации):
processor: 0
vendor_id: AuthenticAMD
cpu family: 21
model: 1
model name: AMD FX(tm)-6100 Six-Core Processor
stepping: 2
microcode: 0x6000629
cpu MHz: 1400.000
cache size: 2048 KB
physical id: 0
siblings: 6
core id: 0
cpu cores: 3
apicid: 16
initial apicid: 0
fpu: yes
fpu_exception: yes
cpuid level: 13
wp: yes
Чтобы узнать состояние батареи ноутбука нужно выполнить следующую команду:
cat /proc/acpi/battery/BAT0/info
Чтобы узнать информацию о всех подключенных USB устройствах нужно воспользоваться утилитой lsusb . Выполните команду:
lsusb
Bus 003 Device 004: ID 13fe:4100 Kingston Technology Company Inc.
Bus 003 Device 003: ID 125f:c96a A-DATA Technology Co., Ltd. C906 Flash Drive
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 004: ID 058f:6361 Alcor Micro Corp. Multimedia Card Reader
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 002: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 011 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 010 Device 003: ID 04d9:1702 Holtek Semiconductor, Inc.
Bus 010 Device 002: ID 046d:0829 Logitech, Inc.
Bus 010 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
И напоследок пару утилит для получения информации о жестких дисках. Утилита hdparm регулирует и просматривает параметры жестких дисков с интерфейсом ATA. Она может установить такие параметры как объём кеш-памяти накопителя, спящий режим, управление питанием, управление акустикой и настройки DMA.Чтобы узнать информацию о подключенных жестких дисках выполните команду:
sudo hdparm -I /dev/sda
Данной командой мы узнаем информацию о вашем винчестере /dev/sda. Привожу часть вывода:
ATA device, with non-removable media
Model Number: WDC WD6400AARS-00Y5B1
Serial Number: WD-WCAV5D714851
Firmware Revision: 80.00A80
Transport: Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6
Standards:
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
—
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 1250263728
Logical/Physical Sector size: 512 bytes
Если программа не установлена, то выполните команду в Терминале:
sudo apt-get install hdparm
fdisk -l
В итоге мы увидим список всех подключенных жестких дисков, флешек и карт памяти. Также мы увидим сколько разделов создано на диске.
Диск /dev/sda: 640.1 Гб, 640135028736 байт
255 головок, 63 секторов/треков, 77825 цилиндров, всего 1250263728 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Идентификатор диска: 0x0009d6f7
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 2048 61441501 30719727 83 Linux
/dev/sda2 61442048 73730031 6143992 82 Linux своп / Solaris
/dev/sda3 73730048 1250263039 588266496 83 Linux
На этом все и удачи всем!
—————————————————————————
Красавчик ÁKOS из популярной венгерской группы Bonanza Banzai
Диагностика оборудования — достаточно важный вопрос, который никак нельзя упускать. Именно поэтому в серию «Шпаргалка сисадмина» для ОС Debian я не могу не добавить статью о средствах получения информации об устройствах. На этот раз я постараюсь коротко рассказать об основных утилитах для диагностики тех или иных компонентов сервера. Начну конечно же со встроенных по умолчанию в систему средств, поскольку знать их и уметь пользоваться должен любой сисадмин. Далее будет обзор пакетов с общим назначением. В конечно счете подойдем к знакомству с дополнительными расширенными инструментами, которые каждый может поставить по желанию.
Узнать информацию о процессоре можно с помощью команды:
root@debian7:~# cat /proc/cpuinfo
Или некоторые другие данные:
root@debian7:~# lscpu
Оперативная память
Краткая информация об использовании памяти:
root@debian7:~# free -m
Утилита также выводит информацию об использовании свопа. Вместо ключа -m, может быть даже лучше использовать -h — получите данные с обозначениями объема.
Расширенная информация:
root@debian7:~# cat /proc/meminfo
Жесткие диски
Отобразить список существующих разделов:
root@debian7:~# fdisk -l
Стоит отметить, что основное назначение утилиты fdisk — управление разделами дисков.
Вывести UUID и тип файловой системы для каждого раздела можно с помощью команды:
root@debian7:~# blkid
Информацию о разделах, точках монтирования и некоторые другие данные можно получить с помощью утилиты lsblk
root@debian7:~# lsblk
Команда отображает все блочные устройства в древовидной структуре.
Сеть
Информация об интерфейсах:
root@debian7:~# ifconfig
Подробная информация о сетевой карте
root@debian7:~# mii-tool -v
Для проверки доступности узлов используйте общеизвестную утилиту ping.
Утилиты общего назначения
top
Утилита top служит для отображения информации о процессах и ресурсах, которые они потребляют. Информация обновляется с определенной периодичностью. Данные можно отсортировать, например, по использованию процессорной мощности или оперативной памяти (по умолчанию идет сортировка по CPU).
root@debian7:~# top
dmidecode
Получить подробную информацию об аппаратном обеспечении можно с помощью dmidecode. Утилита предоставляет данных, полученные от BIOS. В описании пакета приводится следующая справка:
Эта информация обычно включает в себя производителя системы, название модели, серийный номер, версию BIOS, дескриптор ресурса (asset tag) а также другую информацию различного уровня интереса и достоверности, устанавливаемую производителем. Часто содержит состояние занятых процессорных сокетов, слотов расширения (например, AGP, PCI, ISA), слотов памяти и список портов ввода/вывода (например, последовательные и параллельные порты, USB).
Помните, что данные, выдаваемые DMI, не настолько надёжные, чтобы им слепо доверять. Dmidecode не сканирует аппаратное обеспечение, он просто выводит те данные, которые ему предоставляет BIOS.
root@debian7:~# dmidecode
Вывод команды без аргументов слишком объемный, лучше использовать ключ —type и получать только необходимые разделы, например:
root@debian7:~# dmidecode —type 5,6
Команда выведет тип контроллера памяти и используемые модули RAM.
dmesg
Команда используется для вывода буфера сообщений ядра. С точки зрения аппаратного обеспечения, вывод может быть полезен для анализа проблем с оборудованием, да и вообще для полного представления имеющегося «железа». Вывод команды слишком объемный и для его анализа могут понадобиться другие инструменты, например, можно воспользоваться выводом в файл, можно перенаправить вывод команде less, а можно с помощью grep найти необходимые вам аппаратные компоненты.
root@debian7:~# dmesg | grep processor
Команда выведет только строки, содержащие слово processor.
lspci
Утилитой удобно пользоваться для вывода списка всех устройств, подключенных к pci-шине. Информация может быть использована в диагностических целях, а также для определения установленных устройств.
root@debian7:~# lspci
Используйте ключ -t для отображения информации в древовидном представлении, в котором будут отображены все шины и устройства, подключенные к ним. Ключи -v, -vv, -vvv отображают дополнительную информацию по каждому устройству; чем больше «v», тем более подробно выводятся данные.
В целом утилита чрезвычайно полезна при работе с аппаратной составляющей и позволяет получить максимум данных.
vmstat
Показывает сводную информацию о состоянии виртуальной памяти, а также о свопе.
root@debian7:~# vmstat 2
Команда выше будет выводить обновленные данные каждые 2 секунды (вместо 2 можете указать любое другое число).
sysctl
Хоть и утилита предназначена главным образом для управления параметрами ядра на лету, анализ установленных значений может помочь в диагностике проблем.
root@debian7:~# sysctl -a
Команда отобразит все переменные и их значения.
Дополнительные утилиты
Все описанные ниже утилиты не входят в стандартную конфигурацию Debian, придется из ставить отдельно.
htop
Более сильная замена штатной утилиты top. В стандартной конфигурации с системой не поставляется. Предоставляет удобный интерактивный интерфейс со встроенной справкой и обновлением данных в реальном времени.
root@debian7:~# htop -d 10
Ключ -d выставляет значение в десятых долях секунды для обновления данных. Ключ -c переключает программу в монохромный режим работы.
lshw
Утилита предназначена для вывода подробной информации об аппаратном обеспечении. Наиболее удобно экспортировать данные в.html-вид и просматривать в браузере. Такой способ, конечно же, исключается при работе в консольном режиме, разве что если просматривать данные на другой системе.
root@debian7:~# lshw -C network
Команда выведет данные только о сетевой плате.
smartmontools
Пакет состоит из двух утилит (smartctl и smartd), которые следят за S.M.A.R.T-показателями жестких дисков. Для запуска демона необходимо произвести ряд настроек:
Раскомментировать строки и в скобках указать через пробел все устройства, на которых необходимо отслеживать состояние.
enable_smart=»/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde»
start_smartd=yes
smartd_opts=»—interval=1800″
Однако при запуске службы на виртуальной машине с Debian 7.7 у меня выдал ошибку (надо сказать, что отслеживание S.M.A.R.T на виртуальных жестких дисках достаточно бредовая идея, я это сделал лишь с целью протестировать):
Просмотреть состояние диска можно командой:
root@debian7:~# smartctl -a /dev/sda
Несмотря на это, утилита является достаточно распространенной и однозначно рекомендуется к использованию. Кроме того, в сети есть масса инструкций по настройке e-mail-уведомлений в случае проблем с жесткими дисками.
hdparm
Главное предназначение программы — тонкая настройка параметров IDE/SATA жестких дисков, тюнинг производительности. Помимо этого также можно просматривать характеристики устройств командой (укажите свой диск):
root@debian7:~# hdparm -i /dev/sda
Вопросы настройки дисков в рамках этой статьи рассматривать не планируется.
ethtool
Произвести диагностику сетевой платы вам поможет утилита ethtool. Конечно вытянуть информацию можно и с помощью ifconfig, и dmesg и др., но несравнимо больше полезных данных вы получите именно от ethtool. Надо отметить, что с виртуальными сетевыми интерфейсами программа работает достаточно криво. Например отображение статистики по интерфейсу у меня вообще было пустое:
root@debian7:~# ethtool -S eth0
no stats available
Общая информация об интерфейсе была примерно настолько же скудной:
root@debian7:~# ethtool eth0
Settings for eth0:
Link detected: yes
С физическими интерфейсами ситуация обстоит значительно лучше. Помимо диагностики, утилита также предназначена для настройки интерфейсов.
sysstat
Пакет содержит в себе ряд утилит, способных выдавать информацию о производительности тех или иных компонентов системы. Особо полезным может быть iostat, когда нужно проанализировать загрузку жестких дисков в срезе операций ввода/вывода.
Я перечислил далеко не все основные инструменты, знакомство с которыми так необходимо, но по мере возможности собираюсь дополнять статью необходимым материалом.
Проблема
При всех своих достоинствах шина PCI - день вчерашний. Чаще требуется полу
чить список всех устройств в системе, не только устройств PCI: это и устройства USB,
и устройства SCSI, конфигурация памяти и даже процессор.
Решение
Воспользуйтесь программой dmesg. Программа выводит список всего оборудова
ния, обнаруженного ядром.
Чтобы просмотреть весь вывод dmesg, введите команду
$ dmesg | less
Выходные данные dmesg также можно отфильтровать для поиска конкретных
устройств. Так, следующая команда выводит список всех устройств PCI:
$ dmesg I grep -i usb
Вывод списка устройств ISA:
$ dmesg ] grep -i isa
isapnp: Scanning for PnP cards...
isapnp: SB audio device quirk - increasing port range
isapnp: Card "SupraExpress 56i Voice"
Определение объема физической памяти в системе:
$ dmesg | grep -i memory
Memory: 256492/262080k available (1467k kernel code. 5204 reserved. 516k data. 96k
i n i t . OK highmem)
Вывод списка устройств IDE, использующих подсистему эмуляции SCSI в яд
ре 2.4 и более старых версий:
$ dmesg | grep -i scsi
Kernel command line: root=/dev/hda6 ro hdb=scsi hdc=scsi
ide_setup: hdb=scsi
ide_setup: hdc=scsi
hdb: attached ide-scsi driver
hdc: attached ide-scsi driver
scsio: SCSI host adapter emulation for IDE ATAPI devices
А вот как выглядят «настоящие», не эмулированные устройства SCST:
$ dmesg | grep -i scsi
SCSI subsystem driver Revision: 1.00
scsiO: Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev. 6.2.8
...Vendor: IBM-PSG Model:DPSS-336950M M Rev: S9HA
Attached scsi disk sda at scsiO, channel 0. id 0. lun 0
(scsi0:A:0): 160.000MB/S transfers (80.000MHz DT. offset 63. 16bit)
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
Partition check:
sda: sdal sda2sda3 sda4 < sda5 sda6 >
Далее показана информация о камере USB, подключенной к системе, включая
ее местонахождение в файловой системе. Обычно информация об устройстве USB
занимает десяток строк и более:
% dmesg | grep -i usb
. . .
usb.с: registered new d r i v e r ibmcam
icmcam.c: IBM PC Camera USB camera found (model 2. rev. 0x030a)
usbvideo.c: ibmcam on /dev/videoO: canvas=352x240 videosize=352x240
Вывод информации о последовательных портах:
$ dmesg | grep -i tty
ttySOO at 0x03f8 (irq = 4) is a 16550A
Вывод информации о процессоре (или процессорах):
$ dmesg | grep -i cpu
Initializing CPU#0
CPU: LI I Cache: 64K (64 bytes/line). D cache 64K (64 bytes/line)
CPU: L2 Cache: 64K (64 bytes/line)
Intel machine check reporting enabled on CPU#0.
CPU: After generic, caps: 0183f9ff clc7f9ff 00000000 00000000
CPU: Common caps: 0183f9ff clc7f9ff 00000000 00000000
CPU: AMD Duron(tm) Processor stepping 01
Обратите внимание: при поиске возвращаются только те строки, в которых при
сутствует искомая подстрока. Часто дополнительная информация содержится
в соседних строках и находится прямым просмотром файла:
Initializing CPU#0
Detected 801.446 MHz processor.