Von Ulrich Dessauer gibt es ein Software-Paket, genannt YAPS (Yet another pager software), mit dem man SMS-Mails an Handys durch einen Aufruf aus einem Terminal verschicken kann. Dieses Paket wird z.B. mit der Distribution von SuSE ab Version 6.0 ausgeliefert. Diese Programm unterstüzt in der Standart Version leider nur die alten gängigen Vorwahlen der Netzanbieter. Durch eine kleine Erweiterung der yaps.rc Datei im Verzeichnis /etc kann man jedoch auch die neuen Vorwahlen nutzen.

Ziel dieses HowTo’s soll sein, einen Server zu überwachen und im Falle das dieser mit einem Ping nicht erreichbar ist, mit YAPS eine SMS an den Admin schicken.


Voraussetzungen: Linux (in diesem Fall wird von SuSE (ab Version 6.0) ausgegangen). 1 PC mit einem konfigurierten ISDN Anschluss Installiertes Paket YAPS (Serie n)


Editieren von yaps.rc:

Im Folgenden werden nur die relevanten Optionen beschrieben und die Änderungen sind fett dargestellt und Punkte denen man besondere Beachtung schenken sollte sind rot eingefärbt.

#########################################
#	global section			#
#########################################
#
#	This is a comma seperated list of available services. This
#	is required for autodetect the matching service for a
#	pager-id
services	D1,D1new,D2,D2new,E+

---snip---

#	If you'd like to log every sending session define this. It should
#	point to a writeable file. If you install the software setgid, then
#	change the group of this file to the same yaps uses and make it
#	group writeable.
logfile		/var/log/yaps.log

---snip---

#	Set this to the modem device you wish to use
#device		/dev/modem
#device		/dev/cua1
#device		/dev/cua/a
devive		/dev/ttyI0

---snip---

#########################################
#	service section			#
#########################################
#
#	D1 (by Deutsche Telekom)
#
[D1]
protocol	tap
valid-pid	0171|0049171|49171
change-pid	0171
convert		*no-8bit,cv-d1
cv-d1		{
	Ä	[
	Ö	\
	Ü	~
	ä	{
	ö	|
	ü	~
	ß	^]
}
+cost		timetable=Wk0800-1800=5.7;Wk1800-0800=11.4;Ss=11.4
phone		  01712521001 		
# use this number for isdn-dialin:
# phone           01712521001
max-size	160
may-split	True
use-call-id	False
tap-old		True

# # D1 (by Deutsche Telekom) # [D1new] protocol tap valid-pid 0170|0049170|49170 change-pid 0170 convert *no-8bit,cv-d1 cv-d1 { Ä [ Ö \ Ü ~ ä { ö | ü ~ ß ^] } +cost timetable=Wk0800-1800=5.7;Wk1800-0800=11.4;Ss=11.4 phone 01712521001 # use this number for isdn-dialin: # phone 01712521001 max-size 160 may-split True use-call-id False tap-old True # # D2 (by Mannesmann Mobilfunk) # [D2] modem standard-d2 protocol ucp valid-pid 0172|0049172|49172 change-pid 0172 convert *no-8bit,cv-default +cost timetable=Wk0800-1800=5.7;Wk1800-0800=11.4;Ss=11.4 phone 01722278020 # use this number for isdn-dialin: # phone 01722278010 max-size 160 may-split True use-call-id True can-delay True can-expire True can-rds True check-call-id >1111111111111111< check-pager-id >1111111111111111< ucp-extend True
# # D2 (by Mannesmann Mobilfunk) # [D2] modem standard-d2 protocol ucp valid-pid 0173|0049173|49173 change-pid 0173 convert *no-8bit,cv-default +cost timetable=Wk0800-1800=5.7;Wk1800-0800=11.4;Ss=11.4 phone 01722278020 # use this number for isdn-dialin: # phone 01722278010 max-size 160 may-split True use-call-id True can-delay True can-expire True can-rds True check-call-id >1111111111111111< check-pager-id >1111111111111111< ucp-extend True

Jetzt sollte YAPS bereits funktionieren (ansonsten ins LOG-File schauen). Zum Test auf der Console folgenden Befehl eingeben:

yaps HANDYNUMMER "Hallo Test"

Jetzt soll der Server noch überwacht werden. Hierzu schreiben wir ein kleines Shellscript.
pingserver:

#!bin/sh
#########################################################################
# Ping-Test an Server1, wenn keine Packete erhalten werden SMS an Handy #
#########################################################################

ping 10.216.80.2 -c 2 | grep '0 packets received' > /dev/ttyIO && yaps Handynummer "Server1 offline"

Erklärung:

Der Server mit der IP-Adresse 10.216.80.2 wird zweimal angepingt. Das Ergebnis wird nach dem Suchstring 0 packets received durchsucht. Sollte der Suchstring zutreffen, soll eine Umleitung auf das ISDN-Device folgen. Hierbei wird der Befehl um YAPS auszuführen, Handynummer und Text übergeben.


Das Script soll natürlich automatisch und z.B. alle 2 Stunden ausgeführt werden. Deshalb noch folgenden Eintrag als cronjob:

# Server1 online

0 10,12,14,16,18,20,22 * * * /scripte/shell/pingserver