Bulles de notification pour les logs sous GNOME
Il est bien pratique d'être informé de ce qui se passe sur son système dans notre dos. Pour ça, on a les logs, mais on n'a pas forcément envie de passer son temps à les lire, surtout sur une machine de bureau. On peut vouloir recevoir des alertes par mail, mais c'est un peu lourd, encore une fois surtout sur une machine de bureau. De plus il existe certaines informations qui nous intéressent seulement au moment où elles se produisent, donc dont on veut être informé immédiatement et dont on se fiche après. Voici donc un petit script qui affiche en temps réel les infos de certains logs (surveillés via inotify, donc compatible uniquement avec Linux) sous forme de bulle d'information, avec une zoulie icône et tout.
Note : merci à Prometee et à Jérémie pour leurs corrections (voir commentaires).
Avant de pouvoir lancer le script, il vous faut installer inotify-tools ainsi que libnotify-bin (qui ont peut-être un autre nom pour votre distrib).
# Show notifications when watched logs are modified # Logs to watch, add/remove those you want #logs="$logs /var/log/syslog" logs="$logs /var/log/kern.log" logs="$logs /var/log/auth.log" #logs="$logs /var/log/mail.log" #logs="$logs /var/log/mail.info" #logs="$logs /var/log/mail.warn" #logs="$logs /var/log/mail.err" #logs="$logs /var/log/apache2/access.log" #logs="$logs /var/log/apache2/error.log" #logs="$logs /var/log/fail2ban.log" while [ 1 ] do log_modified=`inotifywait -e modify $logs --format %w` notification=`tail -n 1 $log_modified` if [[ $notification != '' ]]; then message_type=info [ `echo $log_modified | grep warn` ] && message_type=warning [ `echo $log_modified | grep err` ] && message_type=error [ `echo $log_modified | grep auth` ] || [ `echo $log_modified | grep access` ] || [ `echo $log_modified | grep fail2ban` ] && message_type=security case $message_type in info) urgency=low icon=dialog-information popup_time=5000 ;; warning) urgency=normal icon=dialog-warning popup_time=5000 ;; error) urgency=critical icon=dialog-error popup_time=10000 ;; security) urgency=critical icon=security-high popup_time=10000 ;; esac notify-send -u $urgency -t $popup_time -i $icon "$log_modified" "$notification" sleep 0.1 fi done
Adaptez ce code à vos besoins pour recevoir plus ou moins d'infos (sachant que c'est vite soulant en fait quand y'en a trop ).
Pour lancer le script au démarrage de la session, rendez le exécutable et allez dans Préférences > Sessions pour demander son lancement à l'ouverture de la session GNOME.
Et le résultat :