У меня есть докер-контейнер на хосте LUbuntu 15.10.
Этот контейнер использует клиент openvpn для подключения к учетной записи VPN.ac.
Это скрипт, который я запускаю, чтобы перезапустить соединение vpn, если оно не работает:
#! /bin/bash
while true
do
sleep 60s
ps -ef | grep -v grep | grep "/usr/sbin/openvpn --cd /etc/openvpn --config /etc/openvpn/default.conf --redirect-gateway"
if [ $? -eq 1 ] ; then
sv restart openvpn
fi
done
Проблема в том, что, если интернет-соединение обрывается, при его возврате скрипт говорит, что не может разрешить имя хоста vpn-сервера, и мне нужно перезапустить контейнер.
Есть лучший способ сделать это?
КСТАТИ, причина, по которой я сокращаю весь оператор команды, состоит в том, что у меня есть другой контейнер, действующий как VPN-сервер, и если я просто делаю "grep openvpn", то он также находит другую службу.
Благодарю.
PS - Пожалуйста, смотрите ниже содержание файла конфигурации OpenVPN.
remote nl1.vpn.ac 50000 udp
dev tun
tls-client
persist-tun
persist-key
nobind
pull
redirect-gateway def1
route-delay 3
auth-user-pass pw
keepalive 10 60
verb 3
explicit-exit-notify 2
remote-cert-tls server
setenv CLIENT_CERT 0
key-direction 1
cipher AES-256-CBC
auth SHA512
<ca>
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
</ca>
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
-----END OpenVPN Static key V1-----
</tls-auth>
script-security 2
up update-resolv-conf.sh
down update-resolv-conf.sh