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 }'` |