
我想測量所有已安裝 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/sda 而不是 /dev/sda1)。
如所寫,上面的命令也將在現有的硬碟和 USB 裝置上運行。若要排除它們,請修改該grep -v
部分。上面的命令將顯示所有不以 a 結尾digit
或包含單字 的行name
。
例如,如果您有兩個希望排除的硬碟(/dev/sda
和/dev/sdb
),則上述命令可以變更為:
for i in $(cat /proc/partitions | grep -v "[ab0-9]$\|name" | awk '{ print $4 }'); do hdparm -tT /dev/"$i"; done