Sraw Asked: 2018-07-16 20:04:07 +0800 CST2018-07-16 20:04:07 +0800 CST 2018-07-16 20:04:07 +0800 CST 需要一项服务来监控每个进程的网络流量 772 是否有一种工具即服务可以监控每个进程的网络流量。这样我就可以使用命令行来分析用法了吗? software-recommendation network-monitoring 1 个回答 Voted Best Answer Bob 2018-07-17T04:25:44+08:002018-07-17T04:25:44+08:00 根据您的评论,您不需要在驱动器上保存日志,并希望在系统启动时将网络监视器作为系统服务启用。我们开始做吧。 安装nethogs实用程序: sudo apt install nethogs 假设您的用户名是:在您的主目录中创建 bash 脚本(您可以将其替换为其他目录)bob: touch /home/bob/nethogs.sh 使创建的脚本可执行: chmod +x /home/bob/nethogs.sh 在文本编辑器中打开脚本并复制并粘贴其代码: #!/bin/bash pipe=/tmp/nethogs_pipe trap "rm -f $pipe" EXIT if [[ ! -p $pipe ]]; then mkfifo $pipe fi exec 3<>$pipe nethogs -t -a >&3 2>&1 exit 0 保存更改并关闭文本编辑器。接下来创建另一个脚本来读取脚本创建的命名管道nethogs.sh: touch /home/bob/netmon.sh 使脚本可执行: chmod +x /home/bob/netmon.sh 复制并粘贴到netmon.sh代码中: #!/bin/bash pipe="/tmp/nethogs_pipe" while true do if read line; then echo $line fi done <"$pipe" exit 0 下一步,我们必须将nethogs.shbash 脚本转换为系统服务。在编辑器中创建/打开文件: sudo nano /etc/systemd/system/nethogs.service 并复制/粘贴代码(替换bob为ExecStart您的用户名): [Unit] After=network.target [Service] ExecStart=/home/bob/nethogs.sh [Install] WantedBy=default.target 保存更改并关闭文件。在系统启动时启用创建的服务: sudo systemctl enable nethogs.service 启动nethogs服务: sudo systemctl start nethogs.service 并检查其状态: sudo systemctl status nethogs.service 最后cd到netmon.sh脚本所在的主目录并执行脚本: ./netmon.sh 要退出监控,请按CTRL+C。就这样。 如果要将监控数据保存到驱动,请将nethogs.sh脚本内容替换为代码: #!/bin/bash log="/var/log/nethogs.log" err="/var/log/nethog.err" nethogs -t -a > $log 2> $err exit 0 并重新启动服务: sudo systemctl restart nethogs.service 通过命名管道的实时监视器将被禁用,脚本的输出将保存到/var/log/nethogs.log文件中 - 只需使用less或打开它tail,例如: tail -f /var/log/nethogs.log 所有错误都将保存到/var/log/nethogs.log文件中。/var/log/nethogs.log每次计算机重新启动/服务重新启动时都会清理,以禁用文件清理并启用输出附加替换nethogs.sh脚本的内容与另一个代码: #!/bin/bash log="/var/log/nethogs.log" err="/var/log/nethog.err" nethogs -t -a >> $log 2>> $err exit 0 评论。在 nethogs 命令选项-t和-a里面的脚本可以根据你安装的版本来替换。在 Ubuntu 18.04 nethogs 版本中 option-t表示tracemode和 option-a是listen all interfaces.
根据您的评论,您不需要在驱动器上保存日志,并希望在系统启动时将网络监视器作为系统服务启用。我们开始做吧。
安装
nethogs
实用程序:假设您的用户名是:在您的主目录中创建 bash 脚本(您可以将其替换为其他目录)
bob
:使创建的脚本可执行:
在文本编辑器中打开脚本并复制并粘贴其代码:
保存更改并关闭文本编辑器。接下来创建另一个脚本来读取脚本创建的命名管道
nethogs.sh
:使脚本可执行:
复制并粘贴到
netmon.sh
代码中:下一步,我们必须将
nethogs.sh
bash 脚本转换为系统服务。在编辑器中创建/打开文件:并复制/粘贴代码(替换
bob
为ExecStart
您的用户名):保存更改并关闭文件。在系统启动时启用创建的服务:
启动
nethogs
服务:并检查其状态:
最后
cd
到netmon.sh
脚本所在的主目录并执行脚本:要退出监控,请按
CTRL+C
。就这样。如果要将监控数据保存到驱动,请将
nethogs.sh
脚本内容替换为代码:并重新启动服务:
通过命名管道的实时监视器将被禁用,脚本的输出将保存到
/var/log/nethogs.log
文件中 - 只需使用less
或打开它tail
,例如:所有错误都将保存到
/var/log/nethogs.log
文件中。/var/log/nethogs.log
每次计算机重新启动/服务重新启动时都会清理,以禁用文件清理并启用输出附加替换nethogs.sh
脚本的内容与另一个代码:评论。在 nethogs 命令选项
-t
和-a
里面的脚本可以根据你安装的版本来替换。在 Ubuntu 18.04 nethogs 版本中 option-t
表示tracemode
和 option-a
是listen all interfaces
.