Python для получения информации о жестких дисках

1

Может кто-то пролить свет на то, какие команды я могу использовать для получения следующих данных с жестких дисков. Было бы лучше, если бы для этого был внутренний Python-модуль, но, вероятно, нет. У меня есть корневой доступ для получения какой-либо информации, но я хотел бы избегать загрузки дополнительных пакетов, поэтому:

procinfo, swapon, hdparm, hardinfo отображаются, а не по умолчанию на Fedora 17, не уверены в других дистрибутивах.

Index (Device 0, could be more)
Description (Full Name, Western Digital Black Edition.....)
InterfaceType (IDE, SCSI)
Manufacturer (Western Digital, Seagate, Maxtor)
Model (WDxxx)
Size (in KB, MB or GB)
Partitions (if Any)
Теги:

2 ответа

4
Лучший ответ

Проверьте sysfs. Например, для первого диска в моей системе Ubuntu 12.04 большая часть этой информации может быть прочитана или указана из-за наличия следующих файлов и каталогов:

  • /SYS/блок /SDA/DEV
  • /SYS/блок /SDA/устройства /scsi_device
  • /sys/block/sda/device/vendor (фактически "ATA", подразумевая SATA, а не "Western Digital", как и следовало ожидать)
  • /SYS/блок /SDA/устройство/модель
  • /SYS/блок /SDA/размер
  • /SYS/блок /SDA/sda1
  • /SYS/блок /SDA/sda2
  • /SYS/блок /SDA/sda5
  • 0
    Я не могу использовать 'sysfs', поскольку он не используется по умолчанию в Fedora 17, но я определенно могу использовать перечисленные команды! Вы знаете, доступны ли они в большинстве дистрибутивов Linux при базовой установке? Это здорово, большое спасибо.
2

Я думаю, что нашел хорошую команду терминала, которая, как представляется, обеспечивает большую часть информации, которую я запросил, и многое другое.

fdisk -l

Теперь остается вопрос, как разбирать этот объем данных!

Выход из fdisk-l

Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 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 identifier: 0xf4375e1b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   895822804   447807978+   7  HPFS/NTFS/exFAT
/dev/sda3      1151823870  1465147391   156661761    5  Extended
/dev/sda4       895823872  1100623871   102400000   83  Linux
/dev/sda5      1151823872  1435025407   141600768   83  Linux
/dev/sda6      1435027456  1465147391    15059968   82  Linux swap / Solaris

Partition table entries are not in disk order

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 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 identifier: 0x3ac08bdc

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  1953521663   976759808    7  HPFS/NTFS/exFAT

Disk /dev/sdc: 16.0 GB, 16008609792 bytes
255 heads, 63 sectors/track, 1946 cylinders, total 31266816 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 identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1              32    31266815    15633392    7  HPFS/NTFS/exFAT
  • 0
    fdisk пугает меня: P
  • 0
    @Joran Beasley Расскажи мне об этом! Этот вывод выглядит удручающе!
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню