• # MAJ SCRIPT

    Posté par . En réponse au message Le plus petit. Évalué à 0.

    Bonsoir !

    Mise à jour du script !!!!

    MAJ 28 AOÛT :

    • Détecte les échecs de connexion, et essaie sur le prochain serveur le moins chargé
    • En cas d'essai infructueux sur tous les serveurs, arrête et propose de vérifier les paramètres de connexion

    Encore merci pour votre aide !!! :D

    #!/bin/bash
    # FREEDOM-IP AUTO CONNECT SCRIPT
    ETH_DEV="eth0"
    WLN_DEV="wlan0"
    # ANALYSE INTERFACE RÉSEAU ACTIVE
    echo
    echo ----- ANALYSE INTERFACE RÉSEAU
    NET_STAT=$(nmcli con status | egrep "${ETH_DEV}|${WLN_DEV}")
    echo
    echo $NET_STAT est la connexion active
    # VÉRIFICATION D'ÉTABLISSEMENT COMPLET DE LA CONNECTIVITÉ INTERNET
    echo
    echo ----- VÉRIFICATION INTERNET...
    CURRENT_IP=$(wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//')
    PING=$(ping -c 3 vpn2.freedom-ip.com | grep % | cut -d ' ' -f4)
    echo
    echo Adresse IP actuelle: $CURRENT_IP
    echo
    echo $PING sur 3 paquets reçus depuis vpn2.freedom-ip.com
    if [ -z $PING ]; then
     echo
     echo Pas de connexion Internet fonctionnelle 
     notify-send 'Freedom-IP:' 'Pas de connexion Internet fonctionnelle' -i dialog-error
     exit
    fi
    # OCCUPATION DES SERVEURS
    echo
    echo ----- OCCUPATION DES SERVEURS
    wget --no-check-certificate -O /tmp/fip_occupation https://freedom-ip.com/statistiques.php
    SERV_LOAD=$(grep personnes /tmp/fip_occupation | cut -d '<' -f2 | cut -d '"' -f2)
    echo
    echo $SERV_LOAD
    SERV_MIN_LOAD=$(awk '{ for (i=1; i<=NF; i++) { if (i%5==1) { nb=$i } if (i%5==0) { print nb" "$i } } }' < <(grep personnes /tmp/fip_occupation | cut -d '<' -f2 | cut -d '"' -f2 | sort -rn | tail -n1) | cut -d ' ' -f2 | cut -d '
    ' -f1)
    echo
    echo $SERV_MIN_LOAD est le moins occupé, sélection pour connexion
    notify-send "Occupation des serveurs" "$SERV_MIN_LOAD est le moins occupé, sélection pour connexion"
    SERV_MIN_LOAD_2=$(awk '{ for (i=1; i<=NF; i++) { if (i%5==1) { nb=$i } if (i%5==0) { print nb" "$i } } }' < <(grep personnes /tmp/fip_occupation | cut -d '<' -f2 | cut -d '"' -f2 | sort -rn | tail -n2) | cut -d ' ' -f2 | cut -d '
    ' -f1)
    SERV_MIN_LOAD_3=$(awk '{ for (i=1; i<=NF; i++) { if (i%5==1) { nb=$i } if (i%5==0) { print nb" "$i } } }' < <(grep personnes /tmp/fip_occupation | cut -d '<' -f2 | cut -d '"' -f2 | sort -rn | tail -n3) | cut -d ' ' -f2 | cut -d '
    ' -f1)
    SERV_MIN_LOAD_4=$(awk '{ for (i=1; i<=NF; i++) { if (i%5==1) { nb=$i } if (i%5==0) { print nb" "$i } } }' < <(grep personnes /tmp/fip_occupation | cut -d '<' -f2 | cut -d '"' -f2 | sort -rn | tail -n4) | cut -d ' ' -f2 | cut -d '
    ' -f1)
    SERV_MIN_LOAD_5=$(awk '{ for (i=1; i<=NF; i++) { if (i%5==1) { nb=$i } if (i%5==0) { print nb" "$i } } }' < <(grep personnes /tmp/fip_occupation | cut -d '<' -f2 | cut -d '"' -f2 | sort -rn | tail -n5) | cut -d ' ' -f2 | cut -d '
    ' -f1)
    SERV_MIN_LOAD_6=$(awk '{ for (i=1; i<=NF; i++) { if (i%5==1) { nb=$i } if (i%5==0) { print nb" "$i } } }' < <(grep personnes /tmp/fip_occupation | cut -d '<' -f2 | cut -d '"' -f2 | sort -rn | tail -n6) | cut -d ' ' -f2 | cut -d '
    ' -f1)
    SERV_MIN_LOAD_7=$(awk '{ for (i=1; i<=NF; i++) { if (i%5==1) { nb=$i } if (i%5==0) { print nb" "$i } } }' < <(grep personnes /tmp/fip_occupation | cut -d '<' -f2 | cut -d '"' -f2 | sort -rn | tail -n7) | cut -d ' ' -f2 | cut -d '
    ' -f1)
    SERV_MIN_LOAD_8=$(awk '{ for (i=1; i<=NF; i++) { if (i%5==1) { nb=$i } if (i%5==0) { print nb" "$i } } }' < <(grep personnes /tmp/fip_occupation | cut -d '<' -f2 | cut -d '"' -f2 | sort -rn | tail -n8) | cut -d ' ' -f2 | cut -d '
    ' -f1)
    # VÉRIFICATION D'UNE CONNEXION AU VPN DÉJÀ EXISTANTE
    echo
    echo ----- VERIFICATION
    VPN_STAT=$(nmcli con status | grep freedomip | cut -d\ -f 1)
    if [ -z "${VPN_STAT}" ]; then
    echo
    echo Pas de connexion VPN active
    notify-send 'Freedom-IP:' "Établissement de la connexion sécurisée..." -i dialog-warning ; else
    echo
    echo Déjà connecté à $VPN_STAT - Redémarrage avec $SERV_MIN_LOAD
    notify-send "Déjà connecté à $VPN_STAT" "Redémarrage avec $SERV_MIN_LOAD" -i dialog-warning
    echo
    echo ----- DÉCONNEXION DE $VPN_STAT
    nmcli con down id "${VPN_STAT}"
    echo
    echo OK
    echo
    echo ----- RECONNEXION À $SERV_MIN_LOAD'_freedomip'
    echo
    RCON=$(nmcli con up id $SERV_MIN_LOAD'_freedomip' | grep "Connexion activée")
    echo $RCON
     if [ "$RCON" = "Connexion activée" ]; then
     NEW_IP=$(wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//')
     echo
     echo Nouvelle IP: $NEW_IP
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD" -i dialog-information ; else
     echo
     echo Impossible de se connecter à $SERV_MIN_LOAD 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD, essai avec $SERV_MIN_LOAD_2" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_2=$(nmcli con up id $SERV_MIN_LOAD_2'_freedomip' | grep "Connexion activée")
     echo $CON_2
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_2" -i dialog-information; else
     echo Impossible de se connecter à $SERV_MIN_LOAD_2 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_2, essai avec $SERV_MIN_LOAD_3" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_2=$(nmcli con up id $SERV_MIN_LOAD_3'_freedomip' | grep "Connexion activée")
     echo $CON_3
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_3" -i dialog-information; else
     echo Impossible de se connecter à $SERV_MIN_LOAD_2 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_3, essai avec $SERV_MIN_LOAD_4" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_4=$(nmcli con up id $SERV_MIN_LOAD_4'_freedomip' | grep "Connexion activée")
     echo $CON_4
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_4" -i dialog-information; else
     echo Impossible de se connecter à $SERV_MIN_LOAD_4 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_4, essai avec $SERV_MIN_LOAD_5" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_5=$(nmcli con up id $SERV_MIN_LOAD_5'_freedomip' | grep "Connexion activée")
     echo $CON_5
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_5" -i dialog-information; else
     echo Impossible de se connecter à $SERV_MIN_LOAD_5 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_5, essai avec $SERV_MIN_LOAD_6" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_6=$(nmcli con up id $SERV_MIN_LOAD_6'_freedomip' | grep "Connexion activée")
     echo $CON_6
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_6" -i dialog-information; else
     echo Impossible de se connecter à $SERV_MIN_LOAD_6 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_6, essai avec $SERV_MIN_LOAD_7" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_7=$(nmcli con up id $SERV_MIN_LOAD_7'_freedomip' | grep "Connexion activée")
     echo $CON_7
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_7" -i dialog-information; else 
     echo Impossible de se connecter à $SERV_MIN_LOAD_7 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_7, essai avec $SERV_MIN_LOAD_8" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_8=$(nmcli con up id $SERV_MIN_LOAD_8'_freedomip' | grep "Connexion activée")
     echo $CON_8
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_8" -i dialog-information; else 
     echo Impossible de se connecter à $SERV_MIN_LOAD_8 
     notify-send 'Freedom-IP:' "Connexion à tous les serveurs impossible, Vérifiez vos paramètres de connexion !" -i dialog-error
     fi
     fi
     fi
     fi
     fi
     fi
     fi
     fi
    echo
    echo ----- FIN DE SCRIPT
    exit
    fi
    # CONNECTION AU VPN SI INTERNET CONNECTÉ
    if [ $PING -eq 3 ]; then
     echo
     echo ----- CONNEXION À $SERV_MIN_LOAD
     echo
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON=$(nmcli con up id $SERV_MIN_LOAD'_freedomip' | grep "Connexion activée")
     echo $CON
     fi
    fi
     if [ "$CON" = "Connexion activée" ]; then
     NEW_IP=$(wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//')
     echo
     echo Nouvelle IP: $NEW_IP
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD" -i dialog-information ; else
     echo
     echo Impossible de se connecter à $SERV_MIN_LOAD 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD, essai avec $SERV_MIN_LOAD_2" -i dialog-error 
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_2=$(nmcli con up id $SERV_MIN_LOAD_2'_freedomip' | grep "Connexion activée")
     echo $CON_2
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_2" -i dialog-information; else
     echo Impossible de se connecter à $SERV_MIN_LOAD_2 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_2, essai avec $SERV_MIN_LOAD_3" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_2=$(nmcli con up id $SERV_MIN_LOAD_3'_freedomip' | grep "Connexion activée")
     echo $CON_3
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_3" -i dialog-information; else
     echo Impossible de se connecter à $SERV_MIN_LOAD_2 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_3, essai avec $SERV_MIN_LOAD_4" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_4=$(nmcli con up id $SERV_MIN_LOAD_4'_freedomip' | grep "Connexion activée")
     echo $CON_4
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_4" -i dialog-information; else
     echo Impossible de se connecter à $SERV_MIN_LOAD_4 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_4, essai avec $SERV_MIN_LOAD_5" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_5=$(nmcli con up id $SERV_MIN_LOAD_5'_freedomip' | grep "Connexion activée")
     echo $CON_5
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_5" -i dialog-information; else
     echo Impossible de se connecter à $SERV_MIN_LOAD_5 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_5, essai avec $SERV_MIN_LOAD_6" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_6=$(nmcli con up id $SERV_MIN_LOAD_6'_freedomip' | grep "Connexion activée")
     echo $CON_6
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_6" -i dialog-information; else
     echo Impossible de se connecter à $SERV_MIN_LOAD_6 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_6, essai avec $SERV_MIN_LOAD_7" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_7=$(nmcli con up id $SERV_MIN_LOAD_7'_freedomip' | grep "Connexion activée")
     echo $CON_7
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_7" -i dialog-information; else 
     echo Impossible de se connecter à $SERV_MIN_LOAD_7 
     notify-send 'Freedom-IP:' "Impossible de se connecter à $SERV_MIN_LOAD_7, essai avec $SERV_MIN_LOAD_8" -i dialog-error
     if [ ! -z "${NET_STAT}" -a -z "${VPN_STAT}" ]; then
     CON_8=$(nmcli con up id $SERV_MIN_LOAD_8'_freedomip' | grep "Connexion activée")
     echo $CON_8
     sleep 3
     notify-send "Connexion sécurisée établie au server $SERV_MIN_LOAD_8" -i dialog-information; else 
     echo Impossible de se connecter à $SERV_MIN_LOAD_8 
     notify-send 'Freedom-IP:' "Connexion à tous les serveurs impossible, Vérifiez vos paramètres de connexion !" -i dialog-error
     fi
     fi
     fi
     fi
     fi
     fi
     fi
     fi
    echo
    echo ----- FIN DE SCRIPT
    exit