Mes passions, le boulots, mes coups de gueule...




Shell Script pour notifier les changements d’adresse IP dynamique via Pushbullet

Catégories : Geek, Informatique, Linux, Raspberry Pi · par 8 Avr 2016

Introduction

Vous l’avez peut-être lu, j’ai récemment changé de connexion internet.

Tout fonctionne bien pour le moment, mais l’interface web du nouveau modem est plutôt réduite. Pas de logs détaillés pour connaître les moments de changement d’adresse IP.

Pour y remédier, j’ai mis en place un petit script sur mon Raspberry Pi.

Le script

Le script va vérifier l’adresse IP toutes les 5 minutes via un cronjob et envoyer une notification Pushbullet et ajouter une ligne dans un fichier log lorsqu’il y a du changement.

Le voici :

#!/bin/bash

# On rapatrie http://checkip.dyndns.com/ dans le fichier index.html
wget http://checkip.dyndns.com/ -O /home/pi/scripts/notify-change-IP/index.html

# On extrait l'adresse IP du fichier index.html et on la place dans le fichier IPactuelle.txt
cat /home/pi/scripts/notify-change-IP/index.html | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' > /home/pi/scripts/notify-change-IP/IPactuelle.txt

# On stocke l'IP contenue dans le fichier IPactuelle.txt dans la variable $IPactuelle
IPactuelle=$(cat /home/pi/scripts/notify-change-IP/IPactuelle.txt)

# On stocke l'IP contenue dans le fichier IPenregistree.txt dans la variable $IPenregistree
IPenregistree=$(cat /home/pi/scripts/notify-change-IP/IPenregistree.txt)

# Si les variables $IPactuelle et $IPenregistree sont différentes et si $IPactuelle n'est pas vide
if [ "$IPactuelle" != "$IPenregistree" ] && [ "$IPactuelle" != "" ]
        then
                # On remplace le fichier IPenregistree.txt par IPactuelle.txt
                cp /home/pi/scripts/notify-change-IP/IPactuelle.txt /home/pi/scripts/notify-change-IP/IPenregistree.txt

                # On envoie la notification Pushbullet
                curl -s -u ici_votre_token_Pushbullet: https://api.pushbullet.com/v2/pushes -d type=note -d title="Raspberry Pi - Changement IP" -d body="L'adresse IP publique du Raspberry Pi vient de changer : $IPactuelle" > /dev/null

                # On ajoute une ligne dans le log qui contient la date, l'heure et l'adresse IP
                echo `date +\%Y\%m\%d` - `date +\%T` - IP : $IPactuelle >> /var/log/notify-change-IP/notify-change-IP-`date +\%Y\%m`.log
fi

# On supprime le fichier index.html
rm /home/pi/scripts/notify-change-IP/index.html

N’oubliez pas de créer le dossier /var/log/notify-change-IP/ dans les logs.

On rend le script exécutable :

$ sudo chmod ug+x /home/pi/scripts/notify-change-IP/notify-change-IP.sh

Et on ajoute une ligne dans le cron :

$ sudo crontab -e
# Envoie une notification quand l'adresse IP publique change
*/5 * * * * /home/pi/scripts/notify-change-IP/notify-change-IP.sh > /dev/null 2>&1

Source : catch22 Stackoverflow.com

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.