Linux Monitoring Benachrichtigungen per SMS oder Skype-Chat

(Last Updated On: 10. Januar 2016)

In meinem Post Einen VServer absichern habe ich unter anderem gezeigt, wie man einrichtet, dass man jedes mal eine E-Mail bekommt, wenn sich ein User per SSH auf dem Server einloggt. Diese Art der E-Mail-Benachrichitigung lässt sich natürlich auch so skripten, dass Benachrichtigungen kommen, wenn bestimmte Dienste auf dem Server ausfallen.

Was ist nun aber, wenn Sie eine andere Form der Benachrichtigung wünschen, etwa in Form einer SMS oder eines Skype-Chats? Es würde ja schließlich Sinn machen, ein und den selben Alert über mehrere Kanäle zu senden, damit man sicher gehen kann, dass der Alert auch ankommt. Beispiel: eine SMS kommt selbst dann durch, wenn ihr empfangendes Gerät nicht mehr online ist. Wenn Sie jedoch hingegen kein Netz, dafür aber WLAN haben, kommt die E-Mail durch.

Deswegen zeige ich Ihnen in diesem Post, wie Sie von der Linux-kommandozeile aus (und somit auch in Shell-Skripten) Benachrichtigungen per SMS, Skype, Twitter und an einen IRC-Channel schicken.

Benachrichitungen per SMS

Zum Versand der SMS braucht ihr einen UMTS surfstick, z. b. einen  HUAWAI E169 oder HUAWEI E173, und eine SIM-Karte von einem Anbieter, über welchen die SMS verschickt werden soll. Hierbei empfehlen sich prepaid-Anbieter mit automatischer guthabenaufladung. es fempehlen sich beispielswiese Prepaid-SIM-Karten von Fyve oder discoTEL.

Nun steckt man den Stick in das Linux-System. Wenn es sich um einen kleinen microcomputer wie einen Raspberry pi handelt, empfiehlt es isch, den Stick nicht direkt in den USB-Slot zu stocken, sondern dazwischen einen aktiven USb-hub zu klmmen. Wenn der USb-Stick dann eingesteckt ist, kann mit

lsusb

ermittelt werden, ob er auch erkannt wird.

Wie für alle Geräte legt das Linux-System nun für den UMTS-Stick mehrere Gerätedateien unter /dev an. Es sollte gerüft werden, ob Gerätedateien mit Namen wie ttyUSB0, ttyUSB1 und ttyUSB2 auftauchen. Falls dem nicht so ist und der UMTS-Stick stattdessen fälschlicherweise als Speichermeidumerkannt wird, schafft usb-modeswitch Abhilfe

apt-get update
apt-get upgrade
apt-get install usb-modeswitch
apt-get install usb-modeswitch-data

Nun, da der UMTs-Stick richtig erkannt wird, installieren wir einen Daemon, der mit unserem UMTS-Stick reden kann.

apt-get install gammu-smsd

Nun editieren wir die konfigurationsdatei /etc/gammu-smsdrc.

# Configuration file for Gammu SMS Daemon

# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/ttyUSB0
connection = at
# Debugging
logformat = textalldate

# SMSD configuration, see gammu-smsdrc(5)
[smsd]
pin = <PIN der SIM-Karte>
service = files
#logfile = syslog
logfile = /var/log/gammu-smsd
# Increase for debugging information
debuglevel = 4
ReceiveFrequency = 300

# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

Wir starten den Daemon neu über

/etc/init.d/gammu-smsd restart

eine SMS kann nun verschickt werden über

echo "<text>" | sudo gammu-smsd-inject TEXT "+<Landesvorwahl><restliche Nummer>"

Benachrichtigung per Twitter

Hierüfr brauchen Sie natürlich vorher einen Twitter-Account. Da es möglich ist, per URL-String zu twittern, können wir auf Linux-Ebene ganz einfach curl verwenden, um diese URL entsprechend aufzurufen. Bitte von dem leerzeichen vor dem letzten Anführungszeichen Notiz nehmen!

curl -u <benutzername>:<passwort> -d status="<text> "

Benachrichtigung über Skype

Hier benötigen Sie vorher einen Skype-Account.

Als erstes installieren wir Python, falls noch nicht vorhanden

apt-get install python

Downloaden Sie Skype4Py von http://skype4py.sourceforge.net/doc/html/

die installation geht ganz einfach über

python setup.py

Jetzt erstellen Sie an beliebiger Stelle eine Datei namens message.py mit folgendem inhalt

import Skype4Py 
skype = Skype4Py.Skype()
skype.SendMessage('<Skype-Konto des Empfängers>','<Text>')

Nun können Sie, wann immer eine Situation eintritt, zu der ein Alert gesendet werden soll, ganz einfach dieses Skript ausführen lassen über

python message.py

Benachrichtigungen über Telegram auf Raspberry Pi

Der Telegram Messenger ist wie WhatsApp oder Threema ein Messaging Service, der für die nutzung mit einem Smartphone oder Tablet optimiert wurde. Wenn ihr Skype nicht auf eurem Smartphone nutzen wollt oder unser Skype-Beispiel bei euch nicht funktioniert, könnt ihr euch speziell für Benachrichtigungen telegrma auf eurem Smartphone installieren. Wie irh dann auf einem Raspberry pi die Benachrichitugngen einrichtet, ziege ich euhc hier.

Als erstes aktualisieren wir die Pakete

sudo apt-get update
sudo apt-get upgrade

dann installieren wir benötigte Pakete

sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev make

git clone --recursive https://github.com/vysheng/tg.git && cd tg

./configure

make

Jhetzt müssen wir unsere Telefonnummer, über die wir telegram-Benachrichtigungen schicken wollen, einrichten. dazu gehen wir wieder in den tg-Ordner, wo wir gerade vorhin noch ./configure ausgeführt haben, und führen aus

bin/telegram-cli -k tg-server.pub -W

Beim ersten Starten des Dienstes müssen wir unseren Ländercode eingeben, 49 für Deutschland. Wir empfangen auf usnerem Smartphone mit der nummer nun eine SMS mit einem Registrierungscode. Diesen geben wir in der nächsten Aufforderung der Kommandozeile ein und bestätigen mit der enter-Taste.

Das war’s schon! Von nun an könnt ihr Benachrichitgungstexte schicekn über

msg <VorName>_<Name> <Nachricht ohne Anführungszeichen>

Ihr könnt aber auch ein Foto schicken über

send_photo <VorName>_<Name> <Pfad/zur/Datei.jpg>

Videos entsprehcend über send_video. Das Tool hat noch viele andere coole optionen, die man sichüber die Komamdnozeilenhilfe ansehen sollte.

Benachrichtigungen per WhatsApp

Vorsicht: die einrichitung der Benachricihtung kostet etwas. Der Preis hält sich aktuell im Rahmen von etwa 0,90 €, kann jedoch n der zukunft teurer werden.

Ein weiteres Problem hierbei ist, dass Whatsapp mit einer Mobilfunknummer immer nur auf einem Gerät gleichzeitig genutzt werden kann. Das heißt wenn ihr mit dieser Mobilfunknummer auch Whatsapp-Nachrichten auf eurem Smartphone empfangen wollt, wird das nicht gehen, wenn ihr dienummer hier anmeldet, da der Raspberry Pi die Nutzung von WhatsApp dauerhaft belegen wird.  Ihr solltet also wenn dann eine Nummer nutzen, auf der ihr normalerweise Whatsapp privat nicht verwenden wollt. eine bessere alternative ist meiner Meinung nach statt Whatsapp entweder Skype oder Telegram zu nutzen, beides wurde weiter oben bereits erklärt.

Updated das System

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update # raspberry pi only

Dann installieren wir benötigte Pakete

sudo apt-get install python-dateutil
sudo apt-get install python-setuptools
sudo apt-get install python-dev
sudo apt-get install libevent-dev
sudo apt-get install ncurses-dev

Jetzt laden und installieren wir yowsup

git clone git://github.com/tgalal/yowsup.git
cd yowsup/
sudo python setup.py install

Nun registrieren wir die Biblitohek mit unserem smartphone, auf dem Whatsapp läuft. Dazu fragen wir auf kommadnozeileneben im Raspebrry pi einen Registrierungscode an

python yowsup-cli registration --requestcode sms --phone 49<telefonnnummer ohne 0 am anfang> -cc 49 --mmc <mobile country code> --mnc <mobile network code>

die 49 steht für den Ländercode von Deutschland. Euren Mobile Country Code bekommt ihr von hier, den mobile Network Code von hier heraus. Nun empfangt ihr auf eurem Smartphone eine SMS mit einem registrierungscode. auf dem Raspberry Pi geben wir nun ein

python yowsup-cli registration --register <registrierungscode> --phone 49<Telefonnummer ohne0 am Anfang> --cc 49

Jetzt sollte tihr eine nachricht mit dem Status ok bekommen.

Benachrichtigung an einen IRC-Channel

Wenn Sie heutzutage noch zu der elitären Klasse der Ultranerds gehören, die noch auf einem IRC-Channel idlen, können Sie sich an diesen Channel ebenfalls Benachrichtigungen schicken lassen.

Zum einen können Sie das ganz ohne zusätzliche Software über die Shell machen

echo -e '<Nachricht>\nNICK <nickname>\nJOIN #<channelname>\nPRIVMSG #<channelname> :<Nachricht>\nQUIT\n' \
| nc <Serveradresse> <Serverport>

Wenn Sie sich auf den IRC server mit SSL-Verschlüsselung connecten und ein Userpasswort angeben müssen (weil diese erzwungen werden), dann bauen Sie sich ein Skript irc.sh

#!/bin/bash -e

USER=$1
MYPASSWORD=$2
IRC_SERVER=$3
IRC_PORT=$4
CHANNEL=$5
MSG=$6

(
echo NICK $USER
echo USER $USER 8 * : $USER
sleep 1
echo PASS $USER:$MYPASSWORD
echo "JOIN $CHANNEL"
echo "PRIVMSG $CHANNEL" $MSG
echo QUIT
) | ncat --ssl $IRC_SERVER $IRC_PORT

und verschicken dann die Nachricht folgendermaßen

./irc.sh <username> <passwort> <server> <port> "#<channelname>" "<Nachricht>"

 

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

DaFRK

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

Das könnte Dich auch interessieren...

Kommentar verfassen

This site uses Akismet to reduce spam. Learn how your comment data is processed.