Power-Management

未使用時自動斷開與 WLAN 的連接

  • September 15, 2016

對於諾基亞 N900,有一個名為 AutoDisconnect 的應用程序,它可以監控 WLAN 的使用情況並在流量非常低時關閉連接。

我想在我未來的筆記型電腦上安裝這樣的東西以節省電池壽命,即在不需要時自動禁用 WLAN。有什麼解決方案可以在 Linux 中實現這一點嗎?我打算使用 Linux Mint 作為我選擇的發行版。

為此,您可以使用一些頻寬監控工具,例如vnstat。要在 Linux Mint 上安裝它,請執行以下操作:

sudo apt-get install vnstat

然後,您可以監控特定時間內連接的平均速度,如果速度低於某個特定限制,則關閉 WLAN。

因此,假設您想要關閉 WLAN,如果您的平均下載速率在5 KB/s30 秒的監控時間內低於此值,那麼您的程式碼將是:

#!/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

引用自:https://unix.stackexchange.com/questions/205481