Redemarrer le RPi quand le LAN tombe

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

Répondre
orcad
Messages : 13
Enregistré le : ven. 20 nov. 2015 19:05

Redemarrer le RPi quand le LAN tombe

Message par orcad » ven. 20 nov. 2015 19:16

Bonjour,

Mon RPi fonctionne très bien mais parfois le lien wifi tombe.
Les autres process continuent sans soucis.
Je souhaiterai faire un vérification périodique du réseau et forcer un redémarrage s'il n'arrive pas a joindre la box.
Actuellement j'utilise SiteUpTime pour vérifier que le RPi réponds bien.
Je dois du coup forcer le redémarrage en coupant l'alimentation ce qui n'est pas top...
s'il redémarrait tout seul quand le wifi tombe se serait mieux...

un crontab avec ping sur la box et un sudo shutdown -r now ?
Je galère encore un peu sur les scripts python mais cela ne doit pas être trop dur.

Merci pour votre aide !!

NB : La mise en veille wifi est bien désactivée :D

domi
Administrateur
Messages : 3233
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: Redemarrer le RPi quand le LAN tombe

Message par domi » sam. 21 nov. 2015 08:28

Bonjour,

Pour palier à ce problème, j'ai fait un script, lancé toutes les 5 minutes par CRON, il vérifie si le Rpi peut "pinguer" le routeur.
Si il ne ping pas, le Rpi relance son réseau (ifdown / ifup), si cela ne fonctionne toujours pas, il se reboot.

Voici le script à lancer par une tache CRON root, moi j'ai mis toute les 5 minutes.

Code : Tout sélectionner

#!/bin/bash
# Test 1 ping sur le serveur PI
ping -q -c1 192.168.1.254 > /dev/null

if [ $? -ne 0 ]; then
  # Le ping n'a pas repondu, on redemarre le reseau et on test un deuxieme essai sur la Freebox.
  JOUR=$(date '+%d-%m-%Y %H-%M-%S')
  echo $JOUR "Redemarrage du service reseau." >> /home/pi/log/reboot.log
  sudo ifdown -a > /dev/null 2>&1
  sudo ifup -a > /dev/null 2>&1
  ping -q -c1 192.168.1.254 > /dev/null

  if [ $? -ne 0 ] ; then
    # Le ping n'a toujours pas repondu, on reboute le raspi.
    JOUR=$(date '+%d-%m-%Y %H-%M-%S')
    echo $JOUR "Echec du redemarrage reseau, Reboot de cuveaeau PI." >> /home/pi/log/reboot.log
    sudo reboot
  else
    JOUR=$(date '+%d-%m-%Y %H-%M-%S')
    echo $JOUR "Reseau valide suite a relance de ce dernier." >> /home/pi/log/reboot.log
  fi
fi

# fin du process.
exit
J'ai mis le script dans le home directory de "pi", et créé un dossier "log" qui me permet de vérifier à quel fréquence cela arrive.

Voila,
Domi

PS : Sujet déplacé de "Débutant" vers "Utilisateur Avancés"
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

orcad
Messages : 13
Enregistré le : ven. 20 nov. 2015 19:05

Re: Redemarrer le RPi quand le LAN tombe

Message par orcad » sam. 21 nov. 2015 11:05

C'est génial ! :D

Pile ce que je cherchait

Merci beaucoup :mrgreen:

Répondre

Retourner vers « Utilisateurs avancés »