Vorraussetzung ist allerdings ein UMTS SurfStick - der muss sich aber nicht einwählen, es wird nur die darin befindliche SIM Karte genutzt um SMS's zu empfangen
Der surfstick brauch nur ne gültige SIM um SMS empfangen zu können - online brauch er nicht sein
Also keinen UMTS router - der Stick muss direkt in den Server gesteckt werden sonst können die SMS's nicht ausgelesen werden (GSM Modem)
-------------------------------------------------------------------------------------
Den Server per SMS Nachrichten zu steuern ist eine gute Notlösung. Diese kann vor allem sehr hilfreich sein, wenn die Internetverbindung einmal abbricht und man z.B. den Router über den Server neu starten möchte oder der ddclient die IP wieder einmal nicht updatet. In dieser Anleitung zeige ich euch, wie ihr den Dienst installiert/einrichtet und einige Anwendungsbeispiele gibts auch.
Für dieses Projekt braucht man zusätzlich natürlich irgendeinen Internetstick, welcher am Server angesteckt ist. Ich benutze einen Huawei E220, es sollten jedoch auch andere funktionieren. Softwareseitig baue ich auf “SMS Server Tools“, welche es ermöglichen bei Empfang einer SMS Nachricht ein Skript zu starten.
Installation
Als Vorbereitung installieren wir zusätzlich benötigte Pakete:
apt-get install build-essential manpages-dev
Jetzt laden wir die “SMS Server Tools” in das “home” Verzeichnis herunter. Vorher könntet ihr noch auf der Herstellerseite nachsehen, ob es sich um die neueste Version handelt, da diese Software aktiv weiterentwickelt wird und es immer wieder Updates gibt. Den folgenden Befehl müsst ihr dann anpassen.
wget -P ~/ http://smstools3.kekekasvi.com/packages/smstools3-3.1.14.tar.gz
Wir entpacken das Installationsarchiv:
tar -xzf ~/smstools*.tar.gz
Nun wechseln wir in dieses Verzeichnis und kompilieren/installieren die Software:
Code: Alles auswählen
cd ~/smstools*
make -s install
Konfiguration des Modems
Um das Modem in der Konfigurationsdatei richtig anzugeben, müssen wir wissen mit welcher USB-Schnittstelle dieses verbunden ist (Modem muss natürlich angesteckt sein).
dmesg | grep ttyUSB
Sieht die Ausgabe folgendermaßen aus, sieht man in diesem Fall, dass das Modem an “ttyUSB0″ hängt. Manche Modems erscheinen als wären sie zwei mal angeschlossen. Dann muss man einfach durchprobieren, mit welchem es funktioniert.
Code: Alles auswählen
[ 5374.832889] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
nano /etc/smsd.conf
Hier ändert man “device” auf das vorhin Herausgefundene und übergeben auch die PIN, sofern man sie nicht deaktiviert hat (ansonsten einfach löschen).
Code: Alles auswählen
[GSM1]
device = /dev/ttyUSB0
incoming = yes
pin = xxxx
/etc/init.d/sms3 restart
Ist die SMS angekommen wird sie unter “/var/spool/sms/incoming” gespeichert und wir können mit dem nächsten Schritt fortfahren.
Scripts ausführen
Um bei eingehender Nachricht ein Script auszuführen, müssen wir folgende Zeile in die “/etc/smsd.conf” einfügen:
Code: Alles auswählen
eventhandler = /usr/local/bin/smsscript.sh
Code: Alles auswählen
devices = GSM1
logfile = /var/log/smsd.log
loglevel = 7
eventhandler = /usr/local/bin/smsscript.sh
[GSM1]
device = /dev/ttyUSB0
incoming = yes
pin = xxxx
touch /usr/local/bin/smsscript.sh && sudo chmod +x /usr/local/bin/smsscript.sh
Und wieder den Service neu starten:
/etc/init.d/sms3 restart
Script und Anwendungsbeispiele
Das nachfolgende Sampleskript vergleicht das Passwort welches am am Anfang der Datei definiert wird mit dem der Nachricht und führt erst dann den Befehl aus.
Die Befehle und das Passwort werden in Großbuchstaben umgewandelt, da auf Telefonen meistens die Autokorrektur aktiviert ist, welche teilweise Anfangsbuchstaben korrigiert. Aus diesem Grund müsst ihr auch das Passwort in Großbuchstaben in das Skript schreiben. Die SMS selbst ist nicht case sensitive, also Groß- und Kleinschreibung werden nicht beachtet.
Das Passwort sorgt hier für etwas Sicherheit. Man könnte auch eine Whitelist erstellen, wodurch “SMS Server Tools” dann nur enthaltene Telefonnummern akzeptiert.
Um dieses Script zu verwenden muss die Nachricht so aussehen:
Code: Alles auswählen
passwort befehl
Code: Alles auswählen
#!/bin/bash
PASSWORD="XYZ"
if [ "$1" = "RECEIVED" ]; then
TEXT=`sed -e '1,/^$/ d' < $2`
# Make text uppercase:
TEXT=`echo "$TEXT" | tr "a-z" "A-Z"`
RCVPASS=`echo "$TEXT" | cut -d" " -f1`
ACTION=`echo "$TEXT" | cut -d" " -f2`
if [ "$PASSWORD" = "$RCVPASS" ]; then
case $ACTION in
#Reboot Server
REBOOT)
reboot
;;
#Shutdown Server
SHUTDOWN)
shutdown -h now
;;
#Reboot DDWRT Router
REBOOTROUTER)
plink root@routerip -pw passwort "reboot"
;;
#Reconnect DDWRT Router
RECONNECTROUTER)
plink root@routerip -pw passwort "stopservice wan && startservice wan"
;;
esac
fi
fi
Standardmäßiger Neustart des Servers.
#Shutdown Server / PASSWORT SHUTDOWN
Dieser Befehl fährt den Server herunter.
#Reboot DDWRT Router / PASSWORT REBOOTROUTER
Um “plink”-Anweisungen zu verwenden müssen die Putty-Tools installiert sein.
apt-get install putty-tools
Danach aktiviert man SSHd am Router um die Steuerung per SSH zu ermöglichen. Dieser Plink Befehl sendet ein einfaches “reboot” an den Router.
plink root@routerip -pw passwort "reboot"
#Reconnect DDWRT Router / PASSWORT RECONNECTROUTER
Dieser Befehl beendet die Internetverbindung am DDWRT Router und verbindet danach wieder.
plink root@routerip -pw passwort "stopservice wan && startservice wan"
Dienst automatisch Starten
Manuell startet man die “SMS Server Tools” mit:
/etc/init.d/sms3 start
Automatisch beim Boot starten:
update-rc.d sms3 defaults
-------------------------------------------------------------------------------------
quelle: http://blog.is-a-geek.org/ubuntu-server ... ernsteuern
(danke @jabba76 für diesen Tip)