Viele SMS Gateway Anbieter bieten eine HTTP basierte Schnittstelle zum versenden von SMS Nachrichten. Mit den Beispiel Shell Skripten lassen sich diese Schnittstellen auch von der Kommandozeile aus nutzen. Die Skripte lassen sich auch erweitern und können so auch für den Versand von Nagios Meldungen genutzt werden.
sms77.de
Beispiel Script für den SMS Anbieter sms77.de.
#!/bin/bash
# fk fk@kworx.de 2007
##########
# Gateway Syntax
# lynx "http://gateway.sms77.de/?" \
# "u=&" \
# "p=&" \
# "to=&" \
# "text=&" \
# "type=basicplus&" \
# "debug=1" \
# -dump 2>/dev/null |grep [0-9]\\+
#
# types basicplus, standard, quality, festnetz, flash
##########
function usage(){
echo "usage: $0 -r
-m \"\""
echo " [-u ] [-p
] [-s ]"
echo " [-t "
exit 1
}
#if [ $# -lt 2 ]; then
# usage
#fi
# set defaults
GATEWAYURL="http://gateway.sms77.de/"
USER="u="
PASS="p="
TYPE="type=basicplus"
SENDER="from="
LYNX=/usr/bin/lynx
while getopts "t:r:m:s:f:u:p:" OPTION; do
case $OPTION in
t)
TYPE="type=$OPTARG"
;;
r)
RECIPIENT="to=$OPTARG"
;;
m)
MESSAGE="text=$OPTARG"
;;
s)
SENDER="from=$OPTARG"
;;
u)
USER="u=$OPTARG"
;;
p)
PASS="p=$OPTARG"
;;
*)
usage
;;
esac
done
if [ "$TYPE" = "type=balance" ]; then
$LYNX "$GATEWAYURL/balance.php?$USER&$PASS" \
-dump 2>/dev/null|grep [0-9]\\+
else
# check values
if [ "$RECIPIENT" = "" ]; then
usage
fi
if [ "$MESSAGE" = "" ]; then
usage
fi
$LYNX "$GATEWAYURL?$USER&$PASS&$RECIPIENT&$TYPE&$MESSAGE&$SENDER" \
-dump 2>/dev/null|grep [0-9]\\+
#|awk '{ print $1 }'`
fi
smskaufen.com
Beispiel Script für den SMS Anbieter smskaufen.com.
#!/bin/bash
# fk fk@kworx.de 19.11.2007
##########
function usage(){
echo "usage: $0 -r
-m \"\""
echo " [-u ] [-p
] [-s ]"
echo " [-t "
exit 1
}
if [ $# -lt 2 ]; then
usage
fi
# set defaults
GATEWAYURL="http://www.smskaufen.com/sms/gateway/sms.php"
USER="id="
PASS="pw="
TYPE="type=4"
SENDER="absender="
LYNX=/usr/bin/lynx
while getopts "t:r:m:s:f:u:p:" OPTION; do
case $OPTION in
t)
TYPE="type=$OPTARG"
;;
r)
RECIPIENT="empfaenger=$OPTARG"
;;
m)
# need to urlencode message text
MESSAGE="text=`echo \"$OPTARG /*$$[]\"|od -t x1 -A n|tr \" \" %`"
;;
s)
SENDER="absender=$OPTARG"
;;
u)
USER="id=$OPTARG"
;;
p)
PASS="pw=$OPTARG"
;;
*)
usage
;;
esac
done
# check values
if [ "$RECIPIENT" = "" ]; then
usage
fi
if [ "$MESSAGE" = "" ]; then
usage
fi
$LYNX "$GATEWAYURL?$USER&$PASS&$RECIPIENT&$TYPE&$MESSAGE&$SENDER" \
-dump 2>/dev/null|grep [0-9]\\+
#|awk '{ print $1 }'`
Schreibe einen Kommentar