Medir os tempos de leitura USB para todos os dispositivos usando hdparm

0

Gostaria de medir os tempos de leitura de todos os dispositivos USB montados.

Eu encontrei que hdparm é adequado para isso:

$ sudo hdparm -tT /dev/sdb1

No entanto, gostaria de anexar vários dispositivos e iterar em /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 barramento e o endereço via lsusb .)

Como posso fazer essa abordagem funcionar?

    
por pylipp 30.09.2016 / 16:34

1 resposta

0

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 o /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 não / dev / sda1).

Conforme escrito, o comando acima também funcionará nos discos rígidos existentes, bem como nos dispositivos USB. Para excluí-los, modifique a parte grep -v . O comando acima exibirá todas as linhas que não terminam em digit ou contêm a palavra name .

Por exemplo, se você tem dois discos rígidos que deseja excluir ( /dev/sda e /dev/sdb ), o comando acima pode ser alterado para:

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