Решение для клиента vpn по отслеживанию за падением vpn канала.
- создать каталог и скрипт-файл, заполнить и сделать скрипт исполняемым
# mkdir -p /var/adm/crons && touch /var/adm/crons/restart_vpn && chmod +x /var/adm/crons/restart_vpn
- добавить скрипт
# nano -b /var/adm/crons/restart_vpn
#!/bin/bash
### При отсутствии ответа с хоста через VPN
### перезапустить VPN
# Interfaces TUN
# для управления с помощью etcnet
# ifdown $TUN; sleep 5; ifup $TUN
TUN=tun1
#=# Удаленный адрес для проверки на доступность
srcinet=77.88.8.8
srcvpn=192.168.0.1
# Пинг тест
ping -c 2 $srcinet -W1 &>/dev/null; pinginet=$?
ping -c 2 $srcvpn -W1 &>/dev/null; pingvpn=$?
# Отладочная информация
echo "pinginet = $pinginet"
echo "pingvpn = $pingvpn"
# Интернет есть и пинг основного vpn хоста отсутствует
if [[ $pingvpn != 0 ]] && [[ $pinginet = 0 ]]; then
echo "Restart VPN ..."
# останавливаем сервер и закрывает все tun, запускаем vpn (/etc/openvpn/client.conf),
# запускаем vpn через etcnet (/etc/net/ifaces/tun...)
/etc/rc.d/init.d/openvpn stop
sleep 5
/etc/rc.d/init.d/openvpn start
sleep 5
ifup $TUN
# каталог сохранения логов
logdir="/var/log/"
echo -e "Result_vpn" >> $logdir/restart_vpn
echo -e "pinginet = $pinginet" >> $logdir/restart_vpn
echo -e "pingvpn = $pingvpn " >> $logdir/restart_vpn
echo -e "Restart VPN TUN ... `date +%Y-%m-%d_%H-%M-%S`" >> $logdir/restart_vpn
fi
- добавить задание в планировщик
- на время сессии (nano,mcedit) export EDITOR=nano; crontab -e
#minute (0-59),
#| hour (0-23),
#| | day of the month (1-31),
#| | | month of the year (1-12),
#| | | | day of the week (0-6 with 0=Sunday).
#| | | | | commands
*/3 * * * * /bin/bash /var/adm/crons/restart_vpn
# перевод строки
как бы работает, но нужно еще погонять в рабочем режиме