From 81be789a47a634df9639f3afdd465ffdfff6c307 Mon Sep 17 00:00:00 2001 From: Jeremie Dimino Date: Tue, 4 Mar 2008 01:31:09 +0100 Subject: [PATCH] modification du script de switch du vpn pour ovh repasse sur la connexion principale quand celle-ci est a nouveau disponible. darcs-hash:20080304003109-af139-156c0ee1e39ea30359163396ba1db73d928b1387.gz --- secours/check-vpn-from-ovh | 57 +++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/secours/check-vpn-from-ovh b/secours/check-vpn-from-ovh index b72b62af..2a49e1b1 100755 --- a/secours/check-vpn-from-ovh +++ b/secours/check-vpn-from-ovh @@ -1,29 +1,40 @@ #!/bin/bash -VPN_NAME=adm -PID_FILE=/var/run/openvpn.${VPN_NAME}.pid +vpn_is_running () { + local pid_file + pid_file=/var/run/openvpn.${pid_file}.pid + [[ ! -f $pid_file || ! -d /proc/$(< $pid_file) ]] +} -if [[ ! -f $PID_FILE || ! -d /proc/$(< $PID_FILE) ]]; then - if fping -q komaz.crans.org; then - ln -sf komaz.conf /etc/openvpn/${VPN_NAME}.conf - if /etc/init.d/openvpn start ${VPN_NAME} > /dev/null; then - echo 'Lancement du tunnel vers komaz reussi !' - exit 0 - else - echo 'Echec du lancement du tunnel vers komaz !' - exit 1 - fi - elif fping -q freebox.crans.org; then - ln -sf freebox.conf /etc/openvpn/${VPN_NAME}.conf - if /etc/init.d/openvpn start ${VPN_NAME} > /dev/null; then - echo 'Lancement du tunnel vers freebox reussi !' - exit 0 - else - echo 'Echec du lancement du tunnel vers freebox !' - exit 1 - fi +vpn_start () { + vpn_is_running $1 && exit 0 + if /etc/init.d/openvpn start $1; then + echo "Lancement du vpn $(hostname)<->$1 reussi "'!' + exit 0 else - echo "Impossible de determiner un point d'acces au CRANS "\! - exit 1 + echo "Echec de lancement du vpn $(hostname)<->$1 "'!' + exit 1 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 + vpn_is_running freebox && /etc/init.d/openvpn stop freebox + 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