对于诺基亚 N900,有一个名为 AutoDisconnect 的应用程序,它可以监控 WLAN 使用情况,并在流量非常低时关闭连接。
我希望在我未来的笔记本电脑上安装类似的功能,以节省电池寿命,即在不需要时自动禁用 WLAN。在Linux下有什么解决方案可以实现这一点吗?我计划使用 Linux Mint 作为我选择的发行版。
答案1
vnstat
为此,您可以使用一些带宽监控工具,例如。要在 Linux Mint 上安装它,请执行以下操作:
sudo apt-get install vnstat
然后,您可以监控指定时间内的平均连接速度,如果速度低于某个特定限制,则关闭 WLAN。
因此,假设您想要5 KB/s
在 30 秒的监控时间内平均下载速率低于以下水平时关闭 WLAN,那么您的代码将是:
#!/bin/bash
#Taking sudo power initially because it will be required later on
sudo echo "Starting AutoDisconnect"
while true
do
downSpeed=$(vnstat -ru 0 -tr 30 -i wlan0 | grep rx | grep -oP "\d+\.\d+")
if (( $(echo "$downSpeed < 5.0" | bc -l) ))
then
sudo ifconfig wlan0 down
exit #exit now because we don't need monitoring since the interface is down
fi
done
重要位的解释
-ru 0 ==> to show the rate in bytes/s (use "1" for bits/s)
-tr 30 ==> take average over 30 seconds usage
-i wlan0 ==> `vnstat` defaults to eth0 on my computer (marmistrz)
bc -l ==> used in bash for doing arithmetic
grep rx ==> considering only the receiving rate (i.e. download rate)
grep -oP "\d+\.\d+" ==> strip out the download rate from the output