本文译自: How To Find USB Device Bandwidth Usage On Linux
翻译校对: EmuLab
原文及本文遵循: [CC BY-NC 4.0协议]
前几天,我想要检查当我将文件从本地磁盘驱动器传输到外部驱动器时,外部USB驱动器总共使用了多少带宽。在寻找一种简单的方法时,我遇到了一个名为“Usbtop”的实用命令行工具。Usbtop可以说就是一个顶级的命令行程序,能够帮助我们在Linux上查找USB设备带宽的使用情况。它还能显示USB总线和设备的瞬时带宽估算值。使用这个工具,我们可以轻松地检查各个设备正在使用的带宽是多少。
安装Usbtop
Usbtop可从AUR 中获取,因此您可以使用任何AUR助手将其安装在Arch linux及其衍生发行版上,例如Yay 。
$ yay -S usbtop
在Debian上,它被包含在了默认的软件源中。运行以下命令进行安装:
$ sudo apt install usbtop
在Ubuntu及其衍生版上,您需要从源代码编译和安装它(译注: 应该也可以使用apt直接安装吧?译者目前使用Arch,有读者可以测试一下吗),如下所示。
安装所需的依赖项:
$ sudo apt update$ sudo apt install cmake git libboost-dev libpcap-dev libboost-thread-dev libboost-system-dev
在本地系统上使用Git 克隆Usbtop仓库:
$ git clone https://github.com/aguinet/usbtop.git
上面的命令将克隆Usbtop仓库中的所有内容。进入usbtop目录:
$ cd usbtop
接下来创建本地构建目录,并进入该目录:
$ mkdir _build && cd _build
最后,通过逐个运行以下命令来安装Usbtop:
$ cmake -DCMAKE_BUILD_TYPE=Release ..$ make$ sudo make install
安装完成后,请确保已加载usbmon模块。
$ sudo modprobe usbmon
使用Usbtop在Linux上查找USB设备带宽使用情况
连接USB驱动器并复制其中的一些文件。打开终端并使用sudo权限运行usbtop命令以估计带宽使用情况。
$ sudo usbtop
输出示例:
正如您在上面的输出中所看到的,Usbtop显示出了USB总线和设备的带宽使用情况。在顶部,您将看到所有USB总线上的总带宽使用情况,在其下方,您将看到每条总线上的带宽使用。
要列出所有可用的USB总线,请运行:
$ usbtop --listName Description---------------------------usbmon1 USB bus number 1usbmon2 USB bus number 2usbmon3 USB bus number 3usbmon4 USB bus number 4
要监控特定USB总线上的带宽流量,请运行:
$ sudo usbtop --bus usbmon1
此命令仅监视usbmon1总线上的带宽流量。
有关详细内容,请参阅帮助信息。
$ usbtop --help
我已经测试了USB外置驱动器和触摸板驱动器。然而,您可以将其用于所有设备,如USB网络摄像头,打印机等,以监控带宽。
建议阅读(点击跳转):
如何方便地在Linux上查询硬件信息并生成报告
3个重启Linux系统的命令(以及4个安全实现的方式)
如何轻松地在命令行上同时移动多种类型的文件?
喜欢使用Linux办公、学习、hack的朋友们可以点击关注小编,小编将竭力提供更多内容给大家交流~