Получение информации о компьютере на UNIX

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

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

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

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

1. lscpu (Linux)

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

lscpu

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

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 install lm-sensors

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

sensors-detect

sensors

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:

free -m

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

              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. Другие команды

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

vmstat -s

top

htop

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

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

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

dmidecode -t baseboard

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

dmidecode

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

1. df

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

df -h

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

Файловая система              Размер Использовано  Дост Использовано% 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 install iotop

б) на CentOS / Red Hat / Rocky Linux:

yum install iotop

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

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 install smartmontools

б) на CentOS / Red Hat / Rocky Linux:

yum install smartmontools

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

smartctl -a /dev/sda

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

Список устройств с дисковыми накопителями можно посмотреть командой:

lsblk

Если нам нужно посмотреть только общее состояние здоровья, то используем опцию H:

smartctl -H /dev/sda

Однако, если один из тестов будет показывать Pre-fail, опция -H, все равно, покажет PASSED. Поэтому лучше смотреть состояние командой:

smartctl -A /dev/sda

Она покажет таблицу с результатами тестов.

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

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

5. Замер скорости чтения и записи.

Для данных замеров нужно использовать разные утилиты — hdparm (чтение) и dd (запись).

hdparm

Позволяет произвести замер скорости чтения. По умолчанию, отсутствует в системе и требуется установка.

а) на Ubuntu / Debian:

apt install hdparm

б) на CentOS / Red Hat / Rocky Linux:

yum install hdparm

После установки утилиты, можно начать замер скорости.

Выполняем команду:

hdparm -tT /dev/sda

* в данном примере мы замерим скорость чтения диска /dev/sda. Чтобы посмотреть в вашей системе список дисков, используем команду:

lsblk

Мы увидим что-то на подобие:

/dev/sda:
 Timing cached reads:   9614 MB in  2.00 seconds = 4809.90 MB/sec
 Timing buffered disk reads: 1006 MB in  3.00 seconds = 334.82 MB/sec

dd

С замером скорости записи все немного проще. Утилита является встроенной.

Выполняем команду:

dd if=/dev/zero of=/tmp/output bs=8k count=1000k; rm -f /tmp/output

* в данном примере мы выполним запись около 8 Гб данных во временный файл /tmp/output. После удалим его.

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

6. Проверка блоков

Выполнить полную проверку диска на наличие испорченных кластеров можно с помощью команды badblocks.

Синтаксис:

badblocks -v <путь до диска, который нужно проверить> > <файл, куда сохранить отчет>

Например:

badblocks -v /dev/sda > /tmp/bad-blocks.txt

* в нашем примере будет выполнена проверка диска /dev/sda. Информация с результатом будет сохранена в файле /tmp/bad-blocks.txt.

7. Информация об оборудовании

Получить подробные сведения о диске (модель, технические детали) можно с помощью утилиты hdparm. Для начала необходимо ее установить.

а) на Ubuntu / Debian / Astra Linux:

apt install hdparm

б) на CentOS / Red Hat / Rocky Linux / РЕД ОС:

yum install hdparm

После установки утилиты, можно получить информацию о железе.

Выполняем команду:

hdparm -I /dev/sda

Сетевые интерфейсы

Рассмотрим несколько команд по работе с сетевыми интерфейсами.

1. lspci

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

lspci | grep -i "net"

2. ip

Данная команда покажет не только физические интерфейсы, но и логические, а также MAC-адреса и назначенные им IP-адреса:

ip address

Для вывода в компактном виде без IP-адресов:

ip link

3. ethtool

Утилита покажет более подробную информацию по сетевому адаптеру. Для начала ее необходимо установить.

а) На DEB-дистрибутив:

apt install ethtool

б) На RPM:

yum install ethtool

Теперь можно вводить:

ethtool eth0

* где eth0 — сетевой интерфейс, информацию о котором нужно посмотреть. Список данных интерфейсов мы можем посмотреть вышеописанной командной ip link.

4. Сетевая активность

Для измерения нагрузки на сеть необходимо установить утилиту nload.

а) На DEB-дистрибутив:

apt install nload

б) На RPM:

yum install nload

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

nload -ni eth0

* в данном примере будет запущена статистика для использования сетевого интерфейса eth0.

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

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

yum install lshw

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

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

lshw

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

lshw -html > linux_hw_info.html

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

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

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

uname -a

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

cat /etc/redhat-release

cat /etc/lsb-release

cat /proc/version

cat /etc/issue

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

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

uname -m

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

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

uname -r

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

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

  1. Stress-ng. Выполняет стресс-тест на оборудование. Полезна, если нужно вычислить сбойный элемент.
  2. Phoronix Test Suite. Тест производительности.
  3. Geekbench. Тест производительности процессора.
  4. GFXBench. Тест видеокарты.
# FreeBSD # Linux # UNIX # Железо # Операционные системы
Дмитрий Моск — частный мастер
Был ли полезен этот ответ?

Да            Нет