如何使用 usbmon 了解从 USB (pendrive) 传输的数据量?

use*_*205 5 linux usb shell command-line kernel

请有人简单解释一下如何使用usbmon来跟踪从pendrive传输的数据量?

she*_*har 4

usbmon.txtusbmon.txt Examples给出了关于 usbmon 或 usbdump 的清晰解释。

您必须找到连接到您的设备的总线。为此,打开您的终端并输入:

cat /sys/kernel/debug/usb/devices
Run Code Online (Sandbox Code Playgroud)

它将为您提供类似于以下内容的输出:

T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0557 ProdID=2004 Rev= 1.00
S:  Manufacturer=ATEN
S:  Product=UC100KM V2.00
Run Code Online (Sandbox Code Playgroud)

在上面的示例输出中,T 有 Bus 及其 ID。所以,总线 id 是 03。

或者

要查看总线 ID,您还可以使用 lsusb ,打开终端并输入:

lsusb
Run Code Online (Sandbox Code Playgroud)

它将为您提供类似于以下内容的输出:

Bus 003 Device 002: ID 0557:2004 ATEN UC100KM V2.00
Run Code Online (Sandbox Code Playgroud)

这意味着总线 ID 003。

您现在知道 USB 连接到 BUS ID 003。然后在终端中输入:

cat /sys/kernel/debug/usb/usbmon/3u > /tmp/1.mon.out
Run Code Online (Sandbox Code Playgroud)

在上面的命令中,您正在监视总线 ID 03 中发生的数据传输。如果您想监视所有总线上的数据传输,请键入:

cat /sys/kernel/debug/usb/usbmon/0u > /tmp/1.mon.out
Run Code Online (Sandbox Code Playgroud)

它将扫描直到传输结束。如果您想中断,请使用CTRL+ C

要了解输出,请阅读:usbmon:USB 监控框架