Remarques sur "notify-send"

Rédigé par Alain Olivetti - -
Notify-send est une application très pratique pour notifier des informations lors de l'exécution d'un script (au moins sous debian). Personnellement, je l'utilise pour me prévenir de la fin de mes sauvegardes de secours (pour information, j'utilise juste rsync et cron pour cela). Lors de la création de mes sauvegardes, j'ai commencé par envoyer dans un fichier texte le résultat de rsync. Je consultais ensuite une fois par jour ce fichier pour vérifier que la sauvegarde c'était bien passée. Par la suite, je me suis affranchi de cette étape en utilisant conky. Grâce à lui, j'ai affiché en continue sur mon bureau les dernières lignes du fichier. Même si c'était plus simple que de consulter le fichier texte, je me suis aperçu à la longue que je ne regardais plus le conky. Par conséquent, je ne vérifiais pas régulièrement que mes données étaient sauvegardées... J'ai bien pensé à m'envoyer par mail le compte rendu de la sauvegarde, mais cela devient rapidement incontrôlable quand on sauvegarde ses données plusieurs fois par jour. La stratégie que j'utilise en ce moment consiste à utiliser notify-send pour envoyer sur l'écran du bureau un message constitué des dernières lignes du fichier texte. J'en arrive enfin aux remarques mais précisons une dernière chose : les sauvegardes se font automatiquement à l'aide d'un script lancé régulièrement par cron. Voici les remarques :
  • Pour que le script sache où envoyer les notifications, il faut lui donner une information sur l'écran qu'il doit utiliser. Si vous n'avez qu'un seul écran, il suffit (en général) de rajouter au début de la ligne qui fait appel à notify-send :
    DISPLAY=:0.0
    Si vous utilisez plusieurs écrans, il faut commencer par identifier l'écran que vous souhaitez utiliser. Pour cela, vous pouvez taper dans un terminal :
    echo $DISPLAY
    et remplacer le :0.0 par le résultat de la commande précédente.
  • Le fichier texte de la sauvegarde contient plusieurs lignes. Pour voir les résultats de rsync, j'utilise notify-send pour afficher les trois dernières. Oui, mais il y a un mais ! En utilisant la commande :
    notify-send TEST `tail -n 3 fichier.log`
    j'ai droit à un jolie message d'erreur : Invalid number of options. Pourquoi ? Car chaque espace dans le fichier texte ce traduit par un nouveau paramètre (remarque : les sauts de lignes sont aussi remplacés par des espaces). Comment y remédier ? En réalité, c'est très simple il suffit d'ajouter des guillemets !
    notify-send TEST "`tail -n 3 fichier.log`"
Et voilà ! Maintenant, à la fin de chaque sauvegarde une petite fenêtre s'affiche pendant dix secondes pour me prévenir que tout c'est bien passé.