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

3 に答える 3

4

sysfs を確認してください。たとえば、私の Ubuntu 12.04 システムの最初のディスクの場合、その情報のほとんどは、次のファイルとディレクトリの存在から読み取ったり、推測したりできます。

  • /sys/ブロック/sda/dev
  • /sys/block/sda/device/scsi_device
  • /sys/block/sda/device/vendor (実際には「ATA」であり、SATA を意味します。予想される「Western Digital」ではありません)
  • /sys/ブロック/sda/デバイス/モデル
  • /sys/ブロック/sda/サイズ
  • /sys/ブロック/sda/sda1
  • /sys/ブロック/sda/sda2
  • /sys/ブロック/sda/sda5
于 2012-12-15T02:20:36.903 に答える
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
于 2012-12-14T23:30:39.633 に答える
1

これは少し遅いかもしれませんが、:

OPがシステムに接続されているハードディスクドライブのリストを必要としているだけの場合は、システムでparted (in bash):出力を使用します。

[root@Bugs]#parted -m /dev/sda print devices
/dev/sda (80.0GB) 
/dev/sdb (128GB)    
/dev/sdc (6001GB)
/dev/sdd (4001GB)
/dev/sde (8002GB)
/dev/sdf (1500GB)
/dev/sdi (4001GB)
/dev/sdg (4001GB)
/dev/sdh (8002GB)
[root@Bugs]#

parted ではデバイスを指定する必要がありますが、実際には必要ないことに注意してください。また、一部のドライブでは、指定された実際のサイズは +xGB でした。これらはドライブ => 4TB のようです。

これは bash コマンドであるため、python にはこれらを実行するためのさまざまなユーティリティがあります。これは私にとって最も簡単な答え/結果であり、OPについては推測します。これが将来誰かに役立つことを願っています。

于 2020-08-09T13:11:52.803 に答える