如果 VPN 已关闭但互联网已连接,则 Ubuntu 脚本将运行命令

如果 VPN 已关闭但互联网已连接,则 Ubuntu 脚本将运行命令

我似乎找不到可以执行此操作的脚本。我想检查我是否通过 tun0(VPN)建立了连接。如果没有,我想检查我是否有活动的互联网连接。如果我无法通过 tun0 访问,但我确实有活动的互联网连接,那么我想运行一个命令。

我尝试了各种方法,但都无法得到可靠的结果。可能是因为我没有经验。

无论 tun0 是否启动或者我是否禁用它,例如 ! /sbin/ifconfig tun0 | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"似乎都会给出相同的结果。

#!/bin/bash 

# add ip / hostname separated by white space
#HOSTS="1.2.3.4"
HOSTS="8.8.8.8 4.2.2.4"
# no ping request
totalcount=0
COUNT=4

DATE=`date +%Y-%m-%d:%H:%M:%S`

if ! /sbin/ifconfig tun0 | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
then
        echo $DATE      tun0 down
        sudo /home/userXXX/startVPN.sh start
else

        for myHost in $HOSTS;
        do
                count=`ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }'`
                totalcount=$(($totalcount + $count))
        done

        if [ $totalcount -eq 0 ]
        then
                echo $DATE      $totalcount "fail"
                sudo /home/userXXX/startVPN.sh start
        #else
        #       echo $DATE      $totalcount "pass"
        fi
fi

相关内容