安装和使用Usbtop以在Linux上查找USB设备带宽使用情况
我想检查将文件从本地硬盘驱动器传输到外部驱动器时外部USB驱动器使用了多少带宽,在寻找一种简单的方法时,我遇到了一个名为Usbtop的命令行实用程序,Usbtop是一个类似顶级的CLI实用程序,可帮助我们在Linux上查找USB设备带宽使用情况,它显示了USB总线和设备的估计瞬时带宽,使用此工具,我们可以轻松检查哪些设备正在使用多少带宽。
在Linux上安装Usbtop
Usbtop在AUR中可用,因此你可以使用任何AUR助手(例如Yay,参考安装及使用Arch Linux/Manjaro系统中的AUR助手yay)将其安装在Arch linux及其衍生版本上:
$ yay -S usbtop
在Debian上,它可以在默认存储库中使用,运行以下命令进行安装:
$ sudo apt install usbtop
在Ubuntu及其衍生产品上,你需要从源代码编译和安装它,如下所示。
安装所需的依赖项:
$ sudo apt update
$ sudo apt install cmake git libboost-dev libpcap-dev libboost-thread-dev libboost-system-dev
在本地系统上使用Git clone Usbtop存储库:
$ git clone https://github.com/aguinet/usbtop.git
上面的命令将克隆当前工作目录中“usbtop”目录中Usbtop存储库的所有内容,cd进入usbtop目录:
$ cd usbtop
接下来创建本地构建目录并将其cd入其中:
$ 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
参考:在Ubuntu系统上为用户授予和删除sudo权限的方法。
样本输出如下图:
正如你在上面的输出中所看到的,Usbtop显示USB总线和设备的带宽使用情况,在顶部,你将看到所有USB总线上的总带宽使用情况,在其下方,你将看到每条总线上的带宽。
要列出所有可用的USB总线,请运行:
$ usbtop --list
Name Description
usbmon1 USB bus number 1
usbmon2 USB bus number 2
usbmon3 USB bus number 3
usbmon4 USB bus number 4
要监控特定USB总线上的带宽流量,请运行:
$ sudo usbtop --bus usbmon1
此命令仅监视usbmon1总线上的带宽流量。
有关详细信息,请参阅帮助部分,运行:
$ usbtop --help
注:通过以上方法,我已经测试了USB外置驱动器和thumb驱动器,但是,你可以将其用于所有设备,如USB网络摄像头、打印机等,以监控带宽。