Outils pour utilisateurs

Outils du site


notification-changement-ip-publique

Notification de changement d'IP Publique

Les fournisseurs d'accès internet (FAI) proposent généralement des adresses IP dynamiques à leurs clients. Il peut être intéressant d'être informé lorsqu'un changement de son IP intervient. Cet article détaille la mise en place d'un système de notification, via un script Bash lancé quotidiennement par anacron, permettant d'être informé du changement de l'IP publique via notify-send.

Notify-send

Notify-send est un programme qui permet d’afficher des notifications sur le bureau.

Installation du paquet:

$ apt-get install libnotify-bin

Script Bash

Dans un premier temps se placer dans le dossier du script et créer un fichier ip.txt et un fichier ip-copy.txt

$ touch ip.txt ip-copy.txt

Puis créer le fichier du script bash, par exemple notify-ip.sh, sans oublier de lui donner les droits d'exécutions.

$ chmod 744 notify-ip.sh

Edition du fichier notify-ip.sh en remplaçant user par le nom de l'utilisateur et chemin-du-script par le chemin du script :

#!/bin/bash

curl ifconfig.me > /home/"user"/"chemin-du-script"/ip.txt ; cmp /home/"user"/"chemin-du-script"/ip.txt /home/"user"/"chemin-du-script"/ip-copy.txt > /home/"user"/"chemin-du-script"/cmp.log

var=`cat /home/"user"/"chemin-du-script"/ip.txt` 

if [ -s cmp.log ]
then
cp /home/"user"/"chemin-du-script"/ip.txt /home/"user"/"chemin-du-script"/ip-copy.txt ; su user -c "notify-send -u normal -t 3 'Nouvelle IP Public : $var'"
fi
  1. Le script récupère et copie l'ip publique dans le fichier nommé ip.txt.
  2. Puis compare les fichiers ip.txt et ip-copy.txt. Il retourne le résultat de la commande dans un fichier nommé cmp.log (s'il n'y a pas de différences le fichier restera vide).
  3. Création d'une variable contenant la nouvelle adresse IP pour l'afficher dans la notification.
  4. Si le fichier cmp.log n'est pas vide alors la nouvelle IP est copiée dans le fichier ip-copy.txt.
  5. Puis la commande notify-send est lancée.

Important: le script étant lancé depuis anacron (root) il est nécessaire d'utiliser des chemin absolus. Mais il faut aussi, pour afficher l'infobulle de notification, lancer la commande sous l'identité de l'utilisateur concerné. Le super-utilisateur (root) ne pouvant par défaut lancer des applications graphiques. D’où l'utilisation de su user -c “commande”.

Anacrontab

C'est anacron qui lancera quotidiennement le script notify-ip.sh.

Edition du fichier /etc/anacrontab :

$ sudo emacs /etc/anacrontab
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

# These replace cron's entries
1	5	cron.daily	run-parts --report /etc/cron.daily
7	10	cron.weekly	run-parts --report /etc/cron.weekly
@monthly	15	cron.monthly	run-parts --report /etc/cron.monthly


1 5 ip-notify /home/"user"/"chemin-du-script"/notify-ip.sh

ref: doc.ubuntu-fr.org/anacron - memo-linux.com/notify-send-outil-de-notification/

Article créé le 17/08/2020

notification-changement-ip-publique.txt · Dernière modification: 2020/09/10 04:33 de steph