PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Änderungen an Log-Datei per Mail?



jazzesnee
04.08.04, 00:26
Hallo,

da ich eine ISDN-Karte in meinem Server eingebaut habe, bekomme ich in meiner /var/log/messages bekomme ich eingehende Anrufe in der Form

Aug 1 11:39:21 faser kernel: isdn_tty: call from 713138xxxx -> 97xxxx ignored angezeigt.

Ich hatte nun die Idee, dass es doch praktisch wäre, dass der Server Benachrichtigungen über eingehende Anrufe an bestimmte MSNs an bestimmte eMail-Adressen verschickt, sodass man bei längerer Abwesenheit automatisch über verpasste Anrufe informiert wird. Außerdem könnte ich so unterwegs über mein WAP-Handy sehen, wer mich zuhause anruft.

Wie mache ich das am Besten? Reicht dazu ein Shellscript?

iceface
04.08.04, 05:03
Wie mache ich das am Besten? Reicht dazu ein Shellscript?
Ja, Shellscript reicht.
Habe mal ein Script entdeckt und auf meine Präferenzen angepasst:

LogFile="/var/log/messages"
SearchString1="RING"
SearchString2="isdn_net"
Delay="2"
DISPLAY=":0"

echo "Start Anrufüberwachung... "
export DISPLAY

FileSize="`ls -l $LogFile | awk '{print $5}'`"

while true; do
NewSize=`ls -l $LogFile | awk '{print $5}'`

if [ $NewSize -gt $FileSize ]; then
Bytes=$(($NewSize-$FileSize))
Message1=`tail -c $Bytes $LogFile | \
grep "$SearchString1" | \
tail - -n 1 | cut -d \ -f -1,2,3,4,10,14,15,16-`
Message2=`tail -c $Bytes $LogFile | \
grep "$SearchString2" | \
tail - -n 1 | cut -d \ -f -1,2,3,4,7,8,9,10,11,12`

if [ -n "$Message1" ]; then
echo -en "\x07"
echo "$Message1" >> /var/log/caller.log
echo "$Message2" >> /var/log/caller.log
echo ================================================== ==================== >> /var/log/caller.log
/usr/X11R6/bin/wavplay /opt/kde3/share/sounds/alert.wav
printf "$Message1\n$Message2" | xmessage -center -file - &
fi
fi

FileSize=$NewSize
sleep $Delay
done

exit 0
Das Script überprüft die Logdatei auf "Ring" und "isdn_net"- events, bei neuen events wird ein Eintrag in die Datei caller.log vorgenommen, eine Sounddatei abgespielt und ein xmessage-window aufgepoppt.

Man könnte hierbei die jeweils letzten Zeilen der Datei caller.log natürlich auch problemlos mailen, in etwa so:
tail -n3 /../caller.log | mail -r meine_mailadresse -s "neuer Anruf" zielmailadresse

..... oder mit den Ergebnissen ("$Message1",.....) weiterarbeiten und diese dann mailen

.....

Der Phantasie sind keine Grenzen gesetzt. Viel Spaß beim scripten!