インストールされているすべての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
セクションを編集してください。上記のコマンドは、digit
aで終わらないか、単語を含むすべての行を表示します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