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 est un programme qui permet d’afficher des notifications sur le bureau.
Installation du paquet:
$ apt-get install libnotify-bin
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
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”
.
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