hdparm을 사용하여 모든 장치의 USB 읽기 시간 측정

hdparm을 사용하여 모든 장치의 USB 읽기 시간 측정

설치된 모든 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섹션을 수정하세요. 위 명령은 digita로 끝나지 않거나 단어를 포함하는 모든 줄을 표시합니다 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

관련 정보