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).