Получение информации о компьютере на 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 необходима установка одноименной утилиты.

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

Проще всего получить с помощью утилиты dmidecode. Для начала, ее нужно установить:

а) на Ubuntu / Debian:

apt install dmidecode

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

yum install dmidecode

После можно пользоваться одноименной командой.

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. Тест видеокарты.
EnglishRussianUkrainian