libnotify - einfach und praktisch
Durch Hack A Day bin ich heute auf das kleine Programm libnotify gestoßen. Dieses erlaubt sehr einfach Benachrichtigungen auf dem Desktop auszugeben. Schnell ergeben sich einige Einsatzszenarien:
- Systemüberwachung:
Sehr einfach ist die Ausgabe des syslogs oder von anderen Logdateien. Das geht sicher auch eleganter, aber diese wenigen Zeilen zeigen wie einfach libnotify funktioniert:#!/bin/bash X="EIN" syslog="leer" syslogalt="leer" dmsg="leer" dmsgalt="leer" publicip="leer" publicipalt="leer" while [ "$X" == "EIN" ] ; do syslog=$(tail -n 1 /var/log/syslog) if [ ! "$syslog" = "$syslogalt" ]; then notify-send -i $HOME/skripte/syslog.png "syslog:" "$syslog" fi syslogalt="$syslog" sleep 5 dmsg=$(tail -n 1 /var/log/dmesg) if [ ! "$dmsg" = "$dmsgalt" ]; then notify-send -i $HOME/skripte/dmesg.png "dmesg:" "$dmsg" fi dmsgalt="$dmsg" sleep 5 publicip=$(lynx -dump http://checkip.dyndns.org) if [ ! "$publicip" = "$publicipalt" ]; then notify-send -i $HOME/skripte/ip.png "Neue IP-Adresse:" "$publicip" fi publicipalt="$publicip" sleep 5 done
Sehr primitiv und nichts für den Dauereinsatz, aber es funktioniert. Übrigens, unter skripte/ liegen bei mir auch die Icons für die Notifications. - Irssi-Highlights remote:
Was mich viel mehr begeistert, ist eine andere Möglichkeit. Wie viele, lasse ich Irssi remote in Screen laufen um es nicht immer neu starten zu müssen. Das macht leider die Ausgabe von Highlights als Notification schwieriger und beeinträchtigt so den Nutzen. Durch ein einfaches Skript lässt sich dies aber auch hier lösen:#!/bin/bash ssh server "tail -n 10 $HOME/.irssi/fnotify; > $HOME/.irssi/fnotify; tail -f $HOME/.irssi/fnotify" | sed -ru " s/&/\&/g; s//\>/g; s%(#[a-zA-Z]+ )<([^>]{0,10})>%\1\2 %g;" | while read heading message do notify-send -i "$HOME/skripte/irssi.png" -- "${heading}" "${message}" done
Vorlage für dieses Skript war dieses hier. Damit es funktioniert, wird das Irssi-Skript fnotify benötigt, welches in .irssi/scripts/ liegen muss und in Irssi mittels /run fnotify.pl gestartet wird.
Barahir - 4. Sep, 11:20