#!/bin/bash
# 检查OpenVPN进程是否在运行
check_openvpn_process() {
pgrep -x openvpn > /dev/null
return $?
}
cd /opt/config
# 自动拨号函数
auto_dial() {
# 执行openvpn命令并输入密码
expect -c "
spawn openvpn xxxx.baisexm.udp.ovpn
expect \"Enter Private Key Password:\"
send \"Ts123456\r\"
expect eof
"
expect -c "
spawn openvpn xxxx.baisexm.tcp.ovpn
expect \"Enter Private Key Password:\"
send \"Ts123456\r\"
expect eof
"
}
# 检测OpenVPN进程并重新拨号
check_and_redial() {
if ! check_openvpn_process; then
echo "OpenVPN is not running. Redialing..."
auto_dial
fi
}
# 启动脚本时自动拨号
auto_dial &
# 每隔10秒检测OpenVPN进程
while true; do
sleep 10
check_and_redial
done