Как собрать сведения об оборудовании и системе компьютера на Linux и FreeBSD

Обновлено Обновлено: Опубликовано Опубликовано:

В данной статье пойдет речь о способах сбора сведений об оборудовании компьютера, который находится под управлением операционных систем семейства UNIX, такие как Linux и BSD. Также, будет немного затронута часть получения системной информации. Действия будут выполняться из командной строки без графической оболочки — их можно выполнить, подключившись к компьютеру удаленно по SSH.

Информация о процессоре

Команды для получения данных о процессоре.

1. lscpu (Linux)

Команда показывает информацию о характеристиках процессора в удобном виде:

Пример ответа:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 62
Model name:            Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
Stepping:              4
CPU MHz:               2592.918
BogoMIPS:              5187.50
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              20480K
NUMA node0 CPU(s):     0-7

* больше всего нас интересует:

  • Architecture — архитектура процессора — 32 бит или 64.
  • Core(s) per socket — количество ядер на процессор.
  • Socket(s) — количество физических/виртуальных процессоров.
  • CPU(s) — суммарное количество процессорных ядер.
  • Model name — модель процессора.

2. sysctl -a (FreeBSD)

Команда отображает множество данных, поэтому добавляем фильтр:

sysctl -a | egrep -i ‘hw.machine|hw.model|hw.ncpu’

Пример ответа:

hw.model: Intel(R) Xeon(R) CPU           X5690  @ 3.47GHz
hw.machine: amd64
hw.ncpu: 2

* на самом деле, команда sysctl работает и в Linux, но формат вывода менее удобен, по сравнению с вышерассмотренной lscpu.

3. Файл /proc/cpuinfo (Linux)

Позволяет увидеть подробную информацию по каждому ядру:

cat /proc/cpuinfo

Команда для подсчета количества ядер:

cat /proc/cpuinfo | grep processor | wc -l

4. Температура процессора

Linux

Сначала необходимо установить утилиту.

На CentOS (RPM):

yum install lm_sensors

Ubuntu (Deb):

apt-get install lm-sensors

После установки утилиты выполняем:

sensors-detect

FreeBSD

Загружаем необходимый модуль:

kldload coretemp

* для автоматической его загрузки добавляем в файл /boot/loader.conf строку coretemp_load=”YES”

Вводим команду:

sysctl -a | grep temperature

Пример ответа:

dev.cpu.0.temperature: 40.0C
dev.cpu.1.temperature: 41.0C

Информация об оперативной памяти

1. Файл /proc/meminfo (Linux)

Команда:

cat /proc/meminfo

Пример ответа:

MemTotal:        8010284 kB
MemFree:         1058580 kB
MemAvailable:    2791616 kB
Buffers:            1884 kB
Cached:          1754092 kB
SwapCached:       122280 kB
Active:          4330296 kB
Inactive:        2006792 kB
Active(anon):    3623768 kB
Inactive(anon):   983120 kB
Active(file):     706528 kB
Inactive(file):  1023672 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1048572 kB
SwapFree:         597684 kB
Dirty:                20 kB
Writeback:             0 kB
AnonPages:       4466532 kB
Mapped:            92808 kB
Shmem:             25776 kB
Slab:             408732 kB
SReclaimable:     308820 kB
SUnreclaim:        99912 kB
KernelStack:        7312 kB
PageTables:        23276 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5053712 kB
Committed_AS:    3770324 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      159328 kB
VmallocChunk:   34359341052 kB
HardwareCorrupted:     0 kB
AnonHugePages:   3248128 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      257984 kB
DirectMap2M:     8130560 kB

* чаще всего, самое важное:

  • MemTotal — общий объем оперативной памяти.
  • MemFree — объем памяти, который не используется системой.
  • Buffers — память, которая в данным момент ожидает записи на диск.
  • Cached — объем, задействованный под кэш чтения с диска.
  • MemAvailable — объем памяти, доступной в распределители без необходимости обмена.
  • SwapTotal — объем файла подкачки.
  • SwapFree — свободный объем файла подкачки.

* Объем используемой памяти = MemTotal – MemFree – Cached – Buffers.

Для перевода килобайт в гигабайты можно воспользоваться онлайн калькулятором.

2. free (Linux)

Данная команда позволяет получить информацию об использовании памяти в удобной таблице. Для еще большего удобства, мы выведем ее с помощью дополнительного параметра -h:

Пример ответа:

              total        used        free      shared  buff/cache   available
Mem:           3,7G        568M        378M        193M        2,8G        2,6G
Swap:          4,0G         94M        3,9G

3. sysctl (FreeBSD)

sysctl hw.physmem

Пример ответа:

hw.physmem: 2123677696

4. dmesg

Работает на BSD и Linux:

dmesg | grep memory

Итог:

real memory  = 2147483648 (2048 MB)
avail memory = 2042109952 (1947 MB)

5. Другие команды

Для получения информации по оперативной памяти также можно использовать команды:

* для htop необходима установка одноименной утилиты.

Информация о материнской плате

1. Узнать производителя и модель:

dmidecode -t baseboard

2. Подробная информация:

Информация о дисковом носителе

1. df

Команда выдает информацию о подмонтированных разделах и объемах, занимаемых ими:

Пример ответа:

Файловая система              Размер Использовано  Дост Использовано% Cмонтировано в
/dev/mapper/sys-root             25G          11G   15G           41% /
devtmpfs                        1,9G            0  1,9G            0% /dev
tmpfs                           1,9G         4,0K  1,9G            1% /dev/shm
tmpfs                           1,9G         193M  1,7G           11% /run
tmpfs                           1,9G            0  1,9G            0% /sys/fs/cgroup
/dev/sda1                      1014M         186M  829M           19% /boot

2. fdisk

Подробная информация о диске и его разделах:

fdisk /dev/sda -l

Ответ:

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000d5e55

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    62914559    30407680   8e  Linux LVM

3. iotop

Команда позволяем увидеть загруженность дисковой системы. Утилиты может не быть в системе — сначала ее нужно установить.

а) на Ubuntu / Debian:

apt-get install iotop

б) на CentOS / Red Hat:

yum install iotop

После установки утилита запускается командой:

Вывод похож на top:

Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd –swi…
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
 1542 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bioset]
 …

4. smartmontools

Утилита позволяет получить SMART дисковых накопителей. По умолчанию, она не установлена — установка выполняется из репозитория.

а) на Ubuntu / Debian:

apt-get install smartmontools

б) на CentOS / Red Hat:

yum install smartmontools

После установки можно использовать:

smartctl -A /dev/sda

* в данном примере мы увидим SMART для диска sda.

Если мы хотим получить информацию по всем дискам, вводим команды по очереди для каждого или:

find /dev -name ‘sd[a-z]’ -exec smartctl -A {} \;

Сбор полной информации о конфигурации компьютера

Если говорить об аналогах таких программ, как AIDA или Speccy в Linux можно воспользоваться утилитой lshw. Для некоторых дистрибутивов ее нужно сначала установить, например:

yum install lshw

* установка в системах на основе Red Hat.

Информацию получаем вводом простой команды:

Или в более удобном и читаемом виде:

lshw -html > linux_hw_info.html

Системная информация

Немного о способах получения информации о системе UNIX.

1. Узнать, какая система установлена:

Чтобы уточнить версию дистрибутива Linux, также нужно ввести одну из команд:

cat /etc/redhat-release

cat /etc/lsb-release

cat /proc/version

cat /etc/issue

* первая команда для дистрибутивов на базе RMP, вторая — некоторых deb, третья и четвертая — для Debian.

2. Архитектура:

* также можно использовать команду arch.

3. Версия ядра:

Тестирование компьютера

В рамках данной статьи просто перечислим утилиты, которые можно использовать для тестирования компьютера на UNIX.

  1. Stress-ng. Выполняет стресс-тест на оборудование. Полезна, если нужно вычислить сбойный элемент.
  2. Phoronix Test Suite. Тест производительности.
  3. Geekbench. Тест производительности процессора.
  4. GFXBench. Тест видеокарты.