hdparmを使用してすべてのデバイスのUSB読み取り時間を測定する

hdparmを使用してすべてのデバイスのUSB読み取り時間を測定する

インストールされているすべてのUSBデバイスの読み取り時間を測定したいです。

確立されたこれに最適ですhdparm

$ sudo hdparm -tT /dev/sdb1

しかし、複数のデバイスを接続して繰り返したいと思います/dev/bus/usb/<bus>/<address>。これによりエラーが発生します。

$ sudo hdparm -tT /dev/bus/usb/003/002
read(2097152) returned 62 bytes
 BLKGETSIZE failed: Operation not permitted
BLKFLSBUF failed: Operation not permitted

(バスと住所を経由して見つけましたlsusb。)

このアプローチをどのように機能させることができますか?

ベストアンサー1

次のことができます。

for i in $(cat /proc/partitions | grep -v "[0-9]$\|name" | awk '{ print $4 }'); do hdparm -tT /dev/"$i"; done

/proc/partitionsこれはデバイス名を繰り返し検索し、その値をに渡しますhdparm。これは、パーティションではなくデバイスで実行されることを意味します(たとえば、/dev/sda1ではなく/dev/sda)。

上記のコマンドは、従来のハードドライブとUSBデバイスでも機能します。除外するには、このgrep -vセクションを編集してください。上記のコマンドは、digitaで終わらないか、単語を含むすべての行を表示しますname

たとえば、除外したい2つのハードドライブ(/dev/sdaおよび)がある場合は、上記のコマンドを次のように変更できます。/dev/sdb

for i in $(cat /proc/partitions | grep -v "[ab0-9]$\|name" | awk '{ print $4 }'); do hdparm -tT /dev/"$i"; done

おすすめ記事