Created
September 16, 2025 13:51
-
-
Save sharkoz/52a44eac5c5e213a74d9c99e1bfcd117 to your computer and use it in GitHub Desktop.
netcheck.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| # --- CONFIGURATION --- | |
| # L'adresse IP de la passerelle à vérifier. | |
| GATEWAY_IP="192.168.2.1" | |
| # Le nombre d'échecs de ping consécutifs avant de déclencher un redémarrage. | |
| MAX_FAILURES=5 | |
| # Le temps d'attente en secondes entre chaque vérification. | |
| CHECK_INTERVAL=15 | |
| # --- SCRIPT --- | |
| failure_count=0 | |
| # Chemin vers le fichier de log. | |
| LOG_FILE="./netcheck.log" | |
| # --- SCRIPT --- | |
| # Fonction pour écrire un message horodaté dans le fichier de log. | |
| log() { | |
| # Format de la date : Année-Mois-Jour Heure:Minute:Seconde | |
| echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE" | |
| } | |
| log "Lancement du script de surveillance de la connectivité..." | |
| while true; do | |
| # Tente de pinger la passerelle. | |
| # -c 1: Envoie un seul paquet. | |
| # -W 3: Attend une réponse pendant 3 secondes. | |
| # La sortie est redirigée vers /dev/null pour ne pas polluer les logs. | |
| if ping -c 1 -W 3 "$GATEWAY_IP" > /dev/null 2>&1; then | |
| # Le ping a réussi, la connexion est active. | |
| if [ $failure_count -gt 0 ]; then | |
| log "Connexion à $GATEWAY_IP rétablie." | |
| fi | |
| failure_count=0 | |
| else | |
| # Le ping a échoué. | |
| failure_count=$((failure_count + 1)) | |
| log "Échec de la connexion à $GATEWAY_IP (Échec n°$failure_count sur $MAX_FAILURES)." | |
| fi | |
| # Vérifie si le nombre maximal d'échecs a été atteint. | |
| if [ $failure_count -ge $MAX_FAILURES ]; then | |
| log "Seuil d'échecs atteint. Redémarrage du système imminent." | |
| # Exécute la commande de redémarrage. | |
| reboot | |
| # Termine le script au cas où la commande reboot échouerait. | |
| exit 1 | |
| fi | |
| # Attend avant la prochaine vérification. | |
| sleep $CHECK_INTERVAL | |
| done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment