scripts/secours/check-vpn-from-ovh
Michel Blockelet e48bff52a6 [check-vpn-from-ovh] On n'envoie un mail que toutes les 5 minutes
darcs-hash:20090327095237-ddb99-d2a3cded891f77c2938e55a9a253ff5aa425a646.gz
2009-03-27 10:52:37 +01:00

55 lines
1.4 KiB
Bash

#!/bin/bash
vpn_is_running () {
local pid_file
pid_file=/var/run/openvpn.$1.pid
[[ ! -f $pid_file || ! -d /proc/$(< $pid_file) ]] && return 1 || return 0
}
vpn_start () {
vpn_is_running $1 && exit 0
# On n'envoie un mail que toutes les 5 minutes
if ! [ -f /tmp/vpn_mail_sent ] || [ $((`date +%s` - `stat -c %X /tmp/vpn_mail_sent`)) -gt 300 ]
then
touch /tmp/vpn_mail_sent
if /etc/init.d/openvpn start $1
then
echo "Lancement du vpn $(hostname)<->$1 reussi "'!'
exit 0
else
echo "Echec de lancement du vpn $(hostname)<->$1 "'!'
exit 1
fi
else
/etc/init.d/openvpn start $1 &> /dev/null
fi
}
if vpn_is_running komaz; then
# Le vpn vers komaz est actif, tout va bien
exit 0
fi
if fping -q komaz.crans.org; then
# Si on peut atteindre komaz, on repasse par komaz
if vpn_is_running freebox
if ! [ -f /tmp/vpn_mail_sent ] || [ $((`date +%s` - `stat -c %X /tmp/vpn_mail_sent`)) -gt 300 ]
then
/etc/init.d/openvpn stop freebox
else
/etc/init.d/openvpn stop freebox &> /dev/null
fi
fi
vpn_start komaz
fi
if vpn_is_running freebox; then
# On ne peut pas atteindre komaz et on passe par la freebox, c'est
# normal
exit 0
fi
if fping -q freebox.crans.org; then
# On tente de passer par la freebox
vpn_start freebox
fi