Test de coupure de courant

thierryR51 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour, Quelle n'est pas notre surprise en rentrant de vacances ou d'un WE de voir la maison dans le noir et le congel HS. Pour être prévenu d'une coupure de courant, il suffit de placer un script sur un raspi chez un ami. Le but est de faire un ping de temps en temps pour voir si notre box fonctionne toujours.


#!/bin/bash
#set -x
 

    CMD=xx.xx.xx.xx    #ip externe de la box
    FileMemory=FM.txt
    MYMAIL="xxxx@gmail.com"

#--------------------------------------------------------------------------------------
 
        if [ -z "$FileMemory" ] #vrai si la chaine est vide 
        then
                echo "Pas de memorisation: Fichier inexistant";
        else
                oldFM=$( cat "$FileMemory" );
        fi

    ping -c 1 -w 2 $CMD 1>2
    if [ "$?" = 0 ];then
      if[ "$oldFM" = "NOK" ];then
        echo "OK" > $FileMemory
        echo "Courant rétablit" | mail -s"De la maison" $MYMAIL
      fi
      echo "OK : $CMD" 
    else
      if[ "$oldFM" = "OK" ];then
        echo "NOK" > $FileMemory
        echo "Courant coupé" | mail -s"De la maison" $MYMAIL
      fi
      echo "NOK : $CMD"
    fi


Il y a une petite erreur mais je n'arrive pas à la débusquer:
pingtest: Syntax error: "then" unexpected (expecting "fi")

Pourtant il me semble avoir tout bien fait....


A voir également:

6 réponses

jeannets Messages postés 28867 Statut Contributeur Ambassadeur 5 998
 
Bonsoir,

L'ip externe de ta BOX, elle ne teste pas ta BOX mais la sortie du serveur de ton FAI et elle est toujours bonne, même si le courant est coupé chez toi et ta Box arrêté...
Le mieux est d'avoir un onduleur sur ton installation locale qui alimente ton Raspi et ta BOX... ton Raspi t'envoie un email selon la présence du 220 ou non..
Certains onduleurs fournissent même le signal qui donne la présence du secteur... ou un voyant que tu peux utiliser...

et ton IP peut changer de temps en temps...

En perfectionnant un peux, tu pourrais même savoir si c'est le disjoncteur qui est sauté (ou non)

et tant qu'à faire, tu peux même placer une routine de wake on Lan sur ton Raspi te permettant de réveiller un PC à distance puis d'y prendre la main afin de visualiser ce qui se passe sur ton réseau ou autre sorte d'action.

Voila mon aide sur le sujet
0
Itdaboyz Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   97
 
L'ip WAN ne test pas la box mais la sortie du serveur ? Depuis quand la "sortie du serveur" répond aux pings qui ne lui sont pas adressés ?
0
jeannets Messages postés 28867 Statut Contributeur 5 998
 
le ping va sur la sortie du serveur chez le FAI ou au DSLAM... sur la ligne de l'IP du client

Coupe le courant de ta BOX et va chez un copain, dans l'heure, pour pinguer ton IP externe, elle répond OK si tu as autorisé le ping. C'est mon cas...
Ceci dit, je crois qu'il y a des nuances, il faudrait etre plus pointu; mais en tout cas, j'en ai déduit qu'on ne pouvait pas se fier à la réponse d'un ping pour en conclure que la BOX est éteinte ou qu'il n'y a plus de courant dans la maison...

Par contre un onduleur est capable de détecter la coupure de courant avec certitude, de maintenir la Box en fonction pour pouvoir envoyer un email, grace au RASPI.
0
Itdaboyz Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   97 > jeannets Messages postés 28867 Statut Contributeur
 
C'est simplement que ton IP a été assignée à une autre box. Un DSLAM n'a pas d'IP, il me semble même qu'il ne supporte pas le protocole IP, c'est un simple modem.
Par contre je te rejoins sur le fait que ping la box n'assure rien. L'ip dynamique foire tout
0
jeannets Messages postés 28867 Statut Contributeur 5 998
 
Il y a des DSLAM IP et des DSLAM ATM selon et sinon, C'est le BAS qui a une IP qui sert à la maintenance ou certains paramétrages distants ... Ceux qui n'ont pas d'IP sont traversant et n'apparaissent pas dans les "Tracert" et si tu regarde bien un Trace Route, il y a quand même beaucoup de points intermédiaires et/ou changement de route idfentifiés... évidement, les N° de ces IP restent confidentielles.
0
Itdaboyz Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   97 > jeannets Messages postés 28867 Statut Contributeur
 
Ce que tu vois dans les traceroutes sont des routeurs.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Tiens, je viens de découvrir Shellcheck (via Korben).

Voilà le résultat pour ton script :


0
thierryR51 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   8
 
Bizarre cette réflexion, car quand je ping ma box et que l'autorisation de ping est coupée, je n'ai pas de réponse. Lorsque je la rétablis, le ping se fait. J'en ai conclu que c'est ma box qui est pinguée et pas le serveur. Je suis avec une BBox, peut être que chez free c'est différent.
0
jeannets Messages postés 28867 Statut Contributeur 5 998
 
Non, le ping autorisé va chez le FAI il n'est pas local et bien d'autre chose aussi
0
thierryR51 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   8
 
Si je débranche ma box, il faut que je sache si le serveur du FAI me renvoie le ping.... S'il ne me le renvoie pas, l'affaire est gagnée.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Tu peux donner le dernier octet de ton IP histoire de tester dans un 1er temps le ping de ta box, s'teuplé ?
0
thierryR51 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   8
 
C'est le 34
0
zipe31 Messages postés 38797 Statut Contributeur 6 433 > thierryR51 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention  
 
Le ping est interdit ???



;-(
0
thierryR51 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   8
 
Nan le ping est autorisé chez moi, mais je l'interdirai dés mon retour....
0
zipe31 Messages postés 38797 Statut Contributeur 6 433 > thierryR51 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention  
 
Euh… tu postes depuis où là ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thierryR51 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   8
 
Tout d'abord je voudrais remercier zipe31( encore une fois) pour ShellCheck. C'est un super outil. J'ai retrouvé mes erreurs.

Une solution sur, serait de pinger le LAN à travers la box. Là ça se complique un peu, mais pas trop.
Si je fais un
ssh thierry@sauvegarde -pxxxxx 


Une simple liaison SSH avec mon autre raspi à la maison me permettrait de savoir si la liaison se fait. Mais comment récupérer le résultat ? Ensuite il me faudrait une confirmation que ce ne soit pas une erreur SSH mais bien une coupure de courant.
0
thierryR51 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   8
 
J'ai changé de stratégie
 #!/bin/bash
#set -x
# script de suivi de présence tension à distance par ping d'un LAN par SSH.

    FileMemory="FM.txt"
    MYMAIL="toto@gmail.com"

#--------------------------------------------------------------------------------------

        if [ ! -f "$FileMemory" ] # vrai si le fichier n'existe pas 
        then
                echo "Pas de memorisation: Fichier inexistant";
                echo "NOK" > $FileMemory
        fi 
    oldFM=$( cat "$FileMemory" );
       

    ssh thierry@sauvegarde -pxxxxxx "exit" 
    if [ "$?" = 0 ]
    then
      if [ "$oldFM" = "NOK" ]; then
        echo "OK" > $FileMemory
        echo "Courant rétablit" | mail -s"De la maison" $MYMAIL
      fi
    else
      if [ "$oldFM" = "OK" ]; then
        echo "NOK" > $FileMemory
        echo "Courant coupé" | mail -s"De la maison" $MYMAIL
      fi
    fi

Ça! ça fonctionne depuis mon raspi. C'est juste une relation d'un raspi à un autre. Je pense que là je suis bon.

0