Vous utilisez surement déjà la commande « mail » pour envoyer vos notifications de script par mail.
echo tot | mail -s "title"
Mais à l’heure des smartphones, il est intéressant de recevoir une notification push! Dans mon cas, j’utilise pushBullet qui a l’avantage d’être multiplateforme!
Vous pourrez donc envoyer des notifications push en ligne de commande linux comme envoyer un simple mail!
Seule limite dans la version gratuite, 500 notifications par mois max. Ce qui est bien suffisant pour de la notification d’erreur de script.
Créer un compte pushBullet
Il faut créer un compte sur le site de pushBullet. Une fois logué avec votre compte Google, allez dans Settings > Account > « Create Access Token ». Copiez le code apparu, il faudra le mettre dans le script dans la variable « accessToken ».
Ensuite, installez une des applications sur votre smartphone pour recevoir les notifications push :
- l’application Android
- l’application iPhone n’est plus disponible
L’API de pushBullet est disponible sur leur site pour ceux qui veulent aller plus loin.
Le script de notification pushBullet
Vous pouvez le télécharger ici : pushbullet.sh
N’oubliez pas de mettre la clé API dans la variable « accessToken »
#!/bin/bash # Auteur : Belgotux # Site : www.monlinux.net # Licence : CC-BY-NC-SA # Version : 1.0 # Date : 08/03/18 # changelog # v1.0 send by pushbullet providerApi='https://api.pushbullet.com/v2/pushes' accessToken='' #send push notification with pushbullet # see https://www.pushbullet.com # $1 title # $2 text body - default $textPushBullet function sendPushBullet { #replace default mesg if [ "$1" != "" ] ; then subjectPushBullet=$1 fi if [ "$2" != "" ] ; then textPushBullet=$2 fi #var verification if [ "$providerApi" == "" ] || [ "$accessToken" == "" ] ; then echo "Can't sen push notification without complete variables for PushBullet" 1>&2 addLog "Can't sen push notification without complete variables for PushBullet" return 1 fi tempfile=$(tempfile -p 'nutNotifyPushBullet-') curl -s -o $tempfile --header "Access-Token: $accessToken" --header 'Content-Type: application/json' --request POST --data-binary "{\"type\":\"note\",\"title\":\"$HOSTNAME - $subjectPushBullet\",\"body\":\"$textPushBullet\"}" "$providerApi" #TODO check return rm $tempfile } if [ $# != 2 ] ; then echo "Error : send message by argument :" 1>&2 echo "Example : pushbullet.sh \"Title\" \"message with spaces\"" 1>&2 exit 1 fi sendPushBullet "$1" "$2" exit $?
La fonction sendPushBullet du script a été intégrée à mon vieux script de notification nut, afin qu’il évolue avec son temps 🙂
Vous pouvez donc facilement intégrer cette fonction dans vos propres scripts bash si besoin, tant que vous respectez le Creative Common BY-NC-SA
Installer le script de notification push
Il faut être en root pour ceci :
wget -O /usr/local/bin/pushbullet.sh https://www.monlinux.net/wp-content/uploads/pushbullet.sh_.txt chmod +x /usr/local/bin/pushbullet.sh
Utiliser le script
Exemple d’intégration dans un script :
pushbullet.sh "Title" "message with spaces"
Exemple de fonctionnement du script avec une notification push au moment où le système démarre (pratique pour ceux qui ont un UPS et veulent savoir quand le courant est revenu) :
/usr/local/bin/pushbullet.sh "booting" "$(date '+%d/%m/%y %H:%M:%S') $HOSTNAME booting"
Des améliorations sont possibles, comme vérifier le code de retour de l’API afin de faire un retry au cas où les serveurs de pushBullet ne seraient pas disponibles. Libre à vous de l’améliorer et de partager 😉
26 janvier 2019 at 22:33
Malheureusement il faut se connecter à un compte Google j’ai l’impression. Or quand on utilise Linux, on essaie parfois d’éviter les GAFAM sans gène en terme d’usage.
15 février 2019 at 11:12
Ici ton compte Google ne sert que pour l’authentification à pushbullet, rien ne transite par Google. Uniquement par pushbullet.
Mais si je vais dans ton sens, alors tu ne dois pas te permettre d’utiliser pushbullet non plus car tes messages passent par eux. Il faut que tu mettent ton propre serveur et développe une application de push toi même ou en trouver un open-source. Et utiliser un firefoxOS.
Ici pushbullet est rapide à mettre en place pour échanger des message comme « backup done » ou « UPS on batt », les GAFAM risquent la famine avec ces maigres infos.