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:
  1. 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.
  2. 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.
Maxe (Gast) - 23. Nov, 15:22

Geht nicht

Danke für das irssi-Skript. Ich bin zwar fähig es zu "reparieren", aber schön finde ich es dennoch nicht, dass du es so kaputt hier ablädst.

Barahir - 23. Nov, 17:25

Danke..

..für den Hinweis, aber zwei fehlende Anführungszeichen passieren halt mal beim abtippen. Sonst ist das zwar nix dolles, funktioniert aber einwandfrei.
Maxe (Gast) - 23. Nov, 18:23

Super

Danke. Kannst du mir jetzt noch verraten, wozu das allererste 'tail' da ist? Ich weiß, was 'tail' macht, und deswegen erscheint es mir unsinnig bzw. überflüssig.

Barahir - 23. Nov, 20:15

Das erste "tail" ist remote, das zweite lokal. Die letzten Zeilen der Datei werden am Server ausgegeben, in eine lokale Datei geschrieben und dann dort mit "tail" an "sed" übergeben. Das geht sicher auch anders, aber es funktioniert.
Maxe (Gast) - 23. Nov, 22:37

Sorry, dass ich schon wieder nerve, aber dann sitzt ja das erste schließende " falsch. Das müsste doch den ersten tail-Befehl schließen, oder?

Trackback URL:
http://barahir.twoday.net/stories/5920473/modTrackback

User Status

Du bist nicht angemeldet.

Suche

 

Aktuelle Beiträge

Sorry, dass ich schon...
Sorry, dass ich schon wieder nerve, aber dann sitzt...
Maxe (Gast) - 23. Nov, 22:37
Das erste "tail" ist...
Das erste "tail" ist remote, das zweite lokal. Die...
Barahir - 23. Nov, 20:15
Super
Danke. Kannst du mir jetzt noch verraten, wozu das...
Maxe (Gast) - 23. Nov, 18:23

Charts Lieblingskünstler - Diese Woche

RSS Box

Digital BMXing through San Francisco
[Alpay] sent in this project he did recently. He was...
Caleb Kraft - 25. Nov, 15:14
Commodore SQ1000 twitter wall: the twypper
Before we begin, let us soothe those first dreaded...
Caleb Kraft - 24. Nov, 20:06
Terminfragen
Nicht vergessen: Alle Produkte, die für das 2....
Torsten - 24. Nov, 19:28
Barahir: Schon wieder ein Monitor kaputt..
Barahir: Schon wieder ein Monitor kaputt..
24. Nov, 17:19
Hack a Sketch
Sometimes we miss that old Etch a Sketch...
Caleb Kraft - 24. Nov, 16:18
$100 free from your favorite hobby supplier!
We were wary at first when the email came in with...
Jakob Griffith - 24. Nov, 15:13
Freunde
Kein Facebook-Freund warnt Dich, wenn Dein Hosenstall...
Torsten - 24. Nov, 08:07
STM8S-Discovery: Microcontrollers reach a new low
A complete microcontroller development kit for little...
Phil Burgess - 23. Nov, 22:30
Cable management for pull-out shelves
Cable management is a headache for all, and if unmitigated...
Mike Szczys - 23. Nov, 21:19
Electronic guitar pick tunes the strings for you
The Stimmmopped is an electronic guitar tuner made...
Mike Szczys - 23. Nov, 19:21
CNC circuit board fabrication
[Jonathan Ward's] pcb mill is as impressive as it...
Mike Szczys - 23. Nov, 17:36
SparkFun product used for immoral hacking
While we have our fun ethically hacking, its very...
Jakob Griffith - 23. Nov, 16:00
Automatic pneumatic drum kit
Move over Steve and PEART… there’s yet...
Jacob Woj - 23. Nov, 14:59
Building capacitive sensitive floor tiles
That title’s a mouthful but you’re already...
Mike Szczys - 22. Nov, 19:49
Hackaday Links: Sunday November 22
Hacklab’s laser cutter got the customary musical...
Caleb Kraft - 22. Nov, 17:10

Status

Online seit 1119 Tagen
Zuletzt aktualisiert: 23. Nov, 22:37