5.4. Получение текущей сводки оборудования с использованием /proc

Проблема

Требуется отслеживать состояние работающей системы в реальном времени, получать информацию о физической памяти и процессоре, идентифицировать диски и т. д.

Решение

Прочитайте данные из виртуальной файловой системы /proc. Для чтения данных из /proc следует применять только cat и утилиты, предназначенные специально для этой цели (например, sysctl, lspci, ps и top). Синтаксис cat остаётся неизменным:

$ cat /proc/файл

Выполняя с /proc те же операции, что и с обычными файловыми системами, вы сможете легко найти нужную информацию. Информация об оборудовании хранится в каталогах с соответствующими именами:

$ ls /proc
bus cmdline cpuinfo devices dma driver filesystems ide kcore kmsg ksyms
loadavg meminfo misc modules mounts mtrr partitions pci scsi swaps sys tty

Вывод информации о процессоре:

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 3
model name      : AMD Duron(tm) Processor
stepping        : 1
cpu MHz         : 801.442

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

$ cat /proc/meminfo
total:    used:    free:  shared: buffers: cached:
Mem:   262746112 237740032  25006080        0  11575296 150138880
Swap:  534601728  81661952 452939776
MemTotal:        256588 kB
MemFree:          24420 kB

Вывод информации о жёстком диске IDE:

$ cat /proc/ide/via
VIA BusMastering IDE Configuration
Driver Version: 3.37
South Bridge: VIA vt82c686a
Revision: ISA 0x22 IDE 0x10
Highest DMA rate: UDMA66

Вывод информации о геометрии диска (как физической, так и логической):

$ cat /proc/ide/ide0/hda/geometry
physical     39870/16/63
logical      2501/255/63

Идентификация диска:

$ cat /proc/ide/ide0/hda/model
IBM-DTLA-305220

Вывод информации об устройствах SCSI (обратите внимание: команда не различает устройства, подключённые к шине SCSI, и устройства IDE, использующие подсистему эмуляции SCSI; в данном случае речь идёт о дисководах CD-ROM с интерфейсом IDE):

$ cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: TOSHIBA  Model: DVD-ROM SD-M1202 Rev: 1020
  Type:   CD-ROM   ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: LITE-ON  Model: LTR-24102B     Rev: 5S54
  Type:   CD-ROM   ANSI SCSI revision: 02

Комментарий

Как упоминалось выше, для чтения данных из /proc следует использовать только cat и утилиты, предназначенные специально для этой цели. Программы постраничного вывода типа less или more выводят другие данные, потому что они читают /proc заново с каждой страницей. Также не рекомендуется использовать текстовый редактор или любую программу с возможностью записи, чтобы не создавать риска повреждения системы.

См. также

proc(5).