WLAN을 사용하지 않을 경우 자동으로 WLAN 연결을 끊습니다.

WLAN을 사용하지 않을 경우 자동으로 WLAN 연결을 끊습니다.

Nokia N900의 경우 WLAN 사용량을 모니터링하고 트래픽이 매우 낮을 때 연결을 닫는 AutoDisconnect라는 애플리케이션이 있습니다.

배터리 수명을 절약하기 위해 미래의 노트북에도 유사한 기능을 설치하고 싶습니다. 즉, 필요하지 않을 때 WLAN을 자동으로 비활성화하는 것입니다. Linux에서 이를 달성할 수 있는 솔루션이 있습니까? 나는 내가 선택한 배포판으로 Linux Mint를 사용할 계획입니다.

답변1

vnstat이를 위해 다음과 같은 일부 대역폭 모니터링 도구를 사용할 수 있습니다. Linux Mint에 설치하려면 다음을 수행하십시오.

sudo apt-get install vnstat

그런 다음 지정된 기간 동안 평균 연결 속도를 모니터링하고 속도가 특정 제한 아래로 떨어지면 Wi-Fi를 끌 수 있습니다.

5 KB/s따라서 평균 다운로드 속도가 30초 모니터링 기간 미만으로 떨어질 때 Wi-Fi를 끄려고 한다고 가정하면 코드는 다음과 같습니다.

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

관련 정보