#!/bin/bash
#變量定義
PATH=/sbin:/usr/sbin:/bin:/usr/bin
config_path="/home/wangzhengyi/cloud-1/openvpn-client.ovpn"
#導入環境變量
. /lib/lsb/init-functions
export PATH=$PATH
#網絡建立後運行openvpn
log_daemon_msg "starting client openvpn"
nohup openvpn $config_path
(2)在網絡斷開前,我們要結束掉所有的vpn進程,防止程序出現bug
#!/bin/bash
#變量定義
urls=("www.88181.com" "www.linuxidc.com" "www.6688.cc")
http_code=("200" "301" "302" "404")
count=${#urls[*]}
connected=0
#檢測網絡
for ((i = 0; i < $count; i ++))
do
url=${urls[$i]}
result=$(curl -o /dev/null -s -m 10 -w %{http_code} $url)
for flag in ${http_code[*]}
do
if [ $flag = $result ];then
connected=$(expr $connected + 1)
fi
done
done
#網絡down時kill所有vpn進程
if [ $connected -eq 0 ];then
vpn_pids=$(ps -aux |grep -i 'openvpn'|grep -v 'grep'|awk '{print $2}')
for pid in ${vpn_pids[*]}
do
kill -9 $pid
done
fi
crontab定時運行
* * * * * monitor_scripts
後記
大家有更好的方法歡迎留言了,希望跟大家探討!