Сегодня будем настраивать автоматическое поднятие канала OpenVPN при его падении по каким-либо причинам. Данный скрипт писался для linux-клиентов OpenVPN.
Суть скрипта в следующем:
1. Происходит проверка запущен ли OpenVPN в системе.
2. Если запущен, то пингуется указанный хост (в идеале сервер VPN), если пинг не проходит, то рестарт OpenVPN.
3. Если процесс не запущен, то стартуется OpenVPN.
Собственно сам скрипт:
ProcName="openvpn"
PingHost="10.10.1.1"
Check=`pidof $ProcName`
StartVPN()
{
/etc/init.d/openvpn start # Стартуем процесс
}
RestartVPN()
{
/etc/init.d/openvpn restart
}
if [ "$Check" = "" ]
then
StartVPN
else
count=$(ping -c 1 $PingHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if ! [ $count -eq 1 ]
then
RestartVPN
fi
fi
Для корректной работы рекомендую запихать скрипт в крон с промежутком выполнения каждые 5-10 минут
Данный скрипт довольно простой и не открывает новых вершин, но позволит поддерживать канал OpenVPN всегда в рабочем состоянии. У меня данный скрипт работает под Debian 7, но под другие ОС его адаптировать довольно легко.
|