Arréter une machine si une IP ne répond pas au ping
Publié : 29 janv. 2025, 05:09
Pourquoi mettre en place cette solution ?
Imaginons que votre réseau électrique subisse une coupure et qu'une seule machine soit connectée à votre onduleur. Dans ce cas, seule cette machine peut réagir et initier les actions nécessaires.
C'est pourquoi nous allons mettre en place un script permettant de vérifier si ce serveur est toujours accessible via son adresse IP. S'il ne répond plus (ce qui peut indiquer qu'il s'est éteint suite à la panne), nous déclencherons l'arrêt propre des autres serveurs afin d'éviter tout risque de corruption des données.
Cette méthode présente toutefois certaines limites. Par exemple, en cas de simple coupure réseau, les serveurs risquent de s'éteindre à tort. Malgré cela, elle reste une solution simple et efficace pour gérer l'arrêt sécurisé des machines lors d'une panne électrique.
Dans un second temps, nous explorerons une méthode pour redémarrer automatiquement les serveurs une fois le courant rétabli.
Prérequis :
Que le ping fonctionne entre les deux machines
Actions :
Créer un fichier sur le serveur qui n'est pas connecté à l'onduleur avec le nom test_onduleur.sh
Copiez le script ci-dessous en prenant soint de le modifier avec vos préférences :
Sauvegarder le script et le rendre executable avec la commande ci-dessous :
Ensuite ajoutez le dans le fichier /etc/crontab
Exemple :
Imaginons que votre réseau électrique subisse une coupure et qu'une seule machine soit connectée à votre onduleur. Dans ce cas, seule cette machine peut réagir et initier les actions nécessaires.
C'est pourquoi nous allons mettre en place un script permettant de vérifier si ce serveur est toujours accessible via son adresse IP. S'il ne répond plus (ce qui peut indiquer qu'il s'est éteint suite à la panne), nous déclencherons l'arrêt propre des autres serveurs afin d'éviter tout risque de corruption des données.
Cette méthode présente toutefois certaines limites. Par exemple, en cas de simple coupure réseau, les serveurs risquent de s'éteindre à tort. Malgré cela, elle reste une solution simple et efficace pour gérer l'arrêt sécurisé des machines lors d'une panne électrique.
Dans un second temps, nous explorerons une méthode pour redémarrer automatiquement les serveurs une fois le courant rétabli.
Prérequis :
Que le ping fonctionne entre les deux machines
Actions :
Créer un fichier sur le serveur qui n'est pas connecté à l'onduleur avec le nom test_onduleur.sh
Copiez le script ci-dessous en prenant soint de le modifier avec vos préférences :
Code : Tout sélectionner
#!/bin/bash
# Adresse IP à surveiller
IP="192.168.1.1"
# Nombre de tentatives de ping avant de considérer l'IP comme inaccessible
ATTEMPTS=3
# Délai en secondes entre chaque ping
DELAY=5
echo "Surveillance de l'IP : $IP"
# Boucle pour vérifier la connectivité
for ((i=1; i<=ATTEMPTS; i++)); do
echo "Tentative $i sur $ATTEMPTS..."
if ping -c 1 -W 2 $IP > /dev/null 2>&1; then
echo "IP $IP est accessible. Tout va bien."
exit 0
else
echo "Ping vers $IP échoué. Tentative $i sur $ATTEMPTS."
fi
sleep $DELAY
done
# Si on arrive ici, c'est que toutes les tentatives ont échoué
echo "IP $IP est inaccessible après $ATTEMPTS tentatives. Arrêt de la machine."
sudo shutdown -h now
Code : Tout sélectionner
chmod +x test_onduleur.shExemple :
Code : Tout sélectionner
# Check presence du serveur onduleur
*/5 * * * * root /home/user/test_onduleur.sh