我安装了 iftop 并且我想将总值放到一个变量上作为示例:
iftop -i mydevice
12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb
└───────────────┴───────────────┴───────────────┴───────────────┴───────────────
sip => 188.241.227.198 2.53Kb 1.27Kb 1.27Kb
<= 2.63Kb 1.31Kb 1.31Kb
────────────────────────────────────────────────────────────────────────────────
TX: cum: 648B peak: 2.53Kb rates: 2.53Kb 1.27Kb 1.27Kb
RX: 673B 2.62Kb 2.63Kb 1.31Kb 1.31Kb
TOTAL: 1.29KB 5.16Kb 5.16Kb 2.58Kb 2.58Kb
好吧,我可以把它作为文本放在这里是的!但我没有
nohup iftop -i enp0s26y7a6 > iftop_output.txt &
当我使用cat
文件时,它显示了我保存的内容,但当我用 打开文件时nano
,它显示了很多我看不懂的代码。我尝试在该代码上搜索“总”金额,但不知道如何将该金额放入变量中。
答案1
所有必要的信息都在伪文件中/proc/net/dev
,您可以在脚本中读取/搜索。例如,要在 bash 脚本中获取以太网接口 (enpo-something) 的计数:
read _ received _ _ _ _ _ _ _ transmitted _ < <(grep enp0 /proc/net/dev)
答案2
我确实进行了安装vnstat
并使用了相同的流程,我解释一下:
vnstat 是一个守护进程,它一直在存储网络使用情况,并且在查询示例中非常完整,我感兴趣的是了解已使用的带宽总量,一个特定接口,在安装 vnstat 后,我们将其称为 mydevice,启动它,一段时间后运行,vnstat 正在存储数据!
vnstat -i mydevice
Database updated: Wed Aug 19 11:38:48 2020
mydevice since 08/18/2020
rx: 9.63 MiB tx: 6.73 MiB total: 16.37 MiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Aug '20 9.63 MiB | 6.73 MiB | 16.37 MiB | 0.08 kbit/s
------------------------+-------------+-------------+---------------
estimated 14 MiB | 9 MiB | 23 MiB |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
yesterday 1.63 MiB | 873 KiB | 2.48 MiB | 0.24 kbit/s
today 8.00 MiB | 5.88 MiB | 13.88 MiB | 2.71 kbit/s
------------------------+-------------+-------------+---------------
estimated 16 MiB | 10 MiB | 26 MiB |
然后,你就得到了给定时刻使用的带宽总量
estimated 16 MiB | 10 MiB | 26 MiB |
第三列,我认为
vnstat -i mydevice -d 2>&1 | grep estimated | cut -d '|' -f 3
这就是印刷品
26 MiB
就是这样,然后你可以用它做任何你需要或想要做的事情!此外,vnstat 有一个非常有趣的选项,让你知道每天安装的带宽,我刚刚安装,但它非常好
vnStat 1.15 by Teemu Toivola <tst at iki dot fi>
-q, --query query database
-h, --hours show hours
-d, --days show days
-m, --months show months
-w, --weeks show weeks
-t, --top10 show top 10 days
-s, --short use short output
-u, --update update database
-i, --iface select interface (default: eth0)
-?, --help short help
-v, --version show version
-tr, --traffic calculate traffic
-ru, --rateunit swap configured rate unit
-l, --live show transfer rate in real time
See also "--longhelp" for complete options list and "man vnstat".