Messen Sie die USB-Lesezeiten für alle Geräte mit hdparm

Messen Sie die USB-Lesezeiten für alle Geräte mit hdparm

Ich möchte die Lesezeiten aller gemounteten USB-Geräte messen.

ICHgefundendas hdparmist dafür geeignet:

$ sudo hdparm -tT /dev/sdb1

Ich möchte jedoch mehrere Geräte anschließen und über iterieren /dev/bus/usb/<bus>/<address>. Dies führt zu einem Fehler:

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

(Bus und Adresse habe ich über gefunden lsusb.)

Wie kann ich diesen Ansatz zum Funktionieren bringen?

Antwort1

Sie könnten etwa Folgendes tun:

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

Dies durchläuft die Schleife /proc/partitionsund ruft die Gerätenamen ab, bevor diese Werte an übergeben werden hdparm, das auf Geräten und nicht auf Partitionen ausgeführt werden soll (z. B. /dev/sda, nicht /dev/sda1).

Wie geschrieben funktioniert der obige Befehl auch auf vorhandenen Festplatten und USB-Geräten. Um sie auszuschließen, ändern Sie den grep -vAbschnitt. Der obige Befehl zeigt alle Zeilen an, die nicht mit einem enden digitoder das Wort enthalten name.

Wenn Sie beispielsweise zwei Festplatten ausschließen möchten ( /dev/sdaund /dev/sdb), kann der obige Befehl wie folgt geändert werden:

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

verwandte Informationen