
Gostaria de medir os tempos de leitura de todos os dispositivos USB montados.
EUencontradoque hdparm
é adequado para isso:
$ sudo hdparm -tT /dev/sdb1
No entanto, gostaria de anexar vários dispositivos e iterar /dev/bus/usb/<bus>/<address>
. Isso me dá um erro:
$ sudo hdparm -tT /dev/bus/usb/003/002
read(2097152) returned 62 bytes
BLKGETSIZE failed: Operation not permitted
BLKFLSBUF failed: Operation not permitted
(Encontrei o ônibus e o endereço via lsusb
.)
Como posso fazer essa abordagem funcionar?
Responder1
Você poderia fazer algo assim:
for i in $(cat /proc/partitions | grep -v "[0-9]$\|name" | awk '{ print $4 }'); do hdparm -tT /dev/"$i"; done
Isso percorre /proc/partitions
e recupera os nomes dos dispositivos antes de passar esses valores para hdparm
, que deve ser executado em dispositivos, não em partições (por exemplo, /dev/sda e não /dev/sda1).
Conforme escrito, o comando acima também funcionará nos discos rígidos existentes, bem como em dispositivos USB. Para excluí-los, modifique a grep -v
parte. O comando acima exibirá todas as linhas que não terminam em a digit
ou contêm a palavra name
.
Por exemplo, se você tiver dois discos rígidos que deseja excluir ( /dev/sda
e /dev/sdb
), o comando acima pode ser alterado para isto:
for i in $(cat /proc/partitions | grep -v "[ab0-9]$\|name" | awk '{ print $4 }'); do hdparm -tT /dev/"$i"; done