linux校园网自动认证脚本(改良)

linux版校园网认证程序在执行之后,会极大地占用计算机资源。
(可能是内存泄漏或者其他原因)
于是自制一个改良版的脚本,配合系统命令crontab,可以进行自动定期自动认证,并避免校园网认证程序过度占用的问题。

#!/bin/bash
# 连接校园网wifi
function checkNet(){
        res=$(ping -c 3 baidu.com | xargs | grep "3 received") 
        #echo "res is $res"
        if [[ $(echo $res | wc -c) -ge 10 ]]; then
                echo "网络连接正常"
                return $((0));
        fi
        echo "网络连接异常"
        return $((1));
}
function connectWifi(){
        echo "正在连接校园网帐号:$1"
        echo "启动认证程序..."
        /程序路径/ESurfingSvr $1 $2 &>/dev/null&\
        echo "20秒后自动关闭认证程序..."&\
        sleep 20 &&\
        echo "关闭认证程序..." &&\
        ps aux | grep ESurfingSvr | grep -v grep | awk '{print $2}' | xargs -I {} kill -9 {}
        echo "认证程序已关闭"
        echo "测试网络是否连通..."
        checkNet
}
echo $?
# 判断是否连接了校园网wifi
wifiName=`iwconfig 2>/dev/null | grep ESSID`
wifiName=${wifiName#*\"}
wifiName=${wifiName%\"*}
echo "当前连接的wifi:"$wifiName

if [[ "$wifiName" == "校园网wifi名称"]]; then
# 如果是,进行自动认证
        connectWifi "帐号" "密码"
        checkNet
        until [[ $? -eq 0 ]]; do
                connectWifi "帐号" "密码"
                checkNet
        done
        echo "认证完成,自动退出..."
fi
#iwconfig 2>/dev/null | grep ESSID

运行过程截图如下:
linux校园网自动认证脚本(改良)_第1张图片

你可能感兴趣的:(经验总结,linux,bash,运维)