SMS alerts My how-to
Andreas Ericsson
ae at op5.se
Tue Oct 26 10:10:58 CEST 2004
Dan Stromberg wrote:
> Actually, I believe there is a globbing parameter you can set in bash,
> that controls whether "foo*", upon matching nothing, will return "foo*"
> or "".
>
(running bash 2.05b here)
That's true. I didn't know about that earlier. If the 'nullglob' option
is disabled it behaves as I said. If it is set, the word is removed.
There's also 'nocaseglob', which expands regardless of case. None of
these are enabled by default.
> On Mon, 2004-10-25 at 03:22, Andreas Ericsson wrote:
>
>>Kyriacos Sakkas wrote:
>>
>>>Thanks to all for replies in how to make my script better, it now
>>>incorporates nearly all of the suggested improvments, plus some
>>>others of my own.
>>>
>>>I include the new current version below, together with an extra script
>>>used, found in debians bash-doc package. If you wish to discuss it
>>>further, please send To: me and cc to the list if you wish, otherwise
>>>I might not spot your message.
>>>
>>>Thanks to all,
>>>
>>>Kyriacos Sakkas.
>>>
>>>Scripts:
>>>smsspool.sh==================================================
>>>#!/bin/bash
>>>#simple sms spooling system, implemented for nagios
>>>#People who added code to this:
>>>#sakkas at unimedcy.com dennis at intouch.net andreas.ericsson at op5.se
>>>#
>>>PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/scripts
>>>
>>>
>>>for i in `ls /var/spool/sms/sms*`
>>>do
>>
>>This first if conditional is toothless, as $i will never be empty.
>>If there aren't any files in /var/spool/sms/sms* then $i will contain
>>the string /var/spool/sms/sms*. Save yourself the indentation level and
>>remove it.
>>
>>
>>>if [ "$i" != "" ]; then
>>> # fixed. Protects from symlink attacks.
>>> test -f "$i" || continue
>>> # get one line only
>>> num=`head -n 1 "$i" | cut -d @ -f 2`
>>> msg=`head -n 2 "$i" | cut -d @ -f 1`
>>> /usr/local/scripts/timeout.sh -15 40 :2 +2 --
>>>/usr/bin/gsmsendsms -b 9600 -d /dev/mobilephone $nu
>>>m "$msg" || exit 1
>>> logger "SMS Message Send to: -$num-"
>>> # don't remove anything but exactly this file
>>> # (double quotes is a meager safeguard, but better
>>>than nothing).
>>> rm -f "$i"
>>> fi
>>>done
>>>exit 0
>>>===========================================================
>>>timeout.sh====================================================
>>>#Newsgroups: comp.unix.admin,comp.unix.solaris,comp.unix.shell
>>>#From: gwc at root.co.uk (Geoff Clare)
>>>#Subject: Re: timeout -t <sec> <unix command> (Re: How to give rsh a
>>>shorter timeout?)
>>>#Message-ID: <EoBxrs.223 at root.co.uk>
>>>#Date: Fri, 13 Feb 1998 18:23:52 GMT
>>>
>>>#
>>># Conversion to bash v2 syntax done by Chet Ramey <chet at po.cwru.edu
>>># UNTESTED
>>>#
>>>
>>>prog=${0##*/}
>>>usage="usage: $prog [-signal] [timeout] [:interval] [+delay] [--]
>>><command>"
>>>
>>>SIG=-TERM # default signal sent to the process when the timer
>>>expires
>>>timeout=60 # default timeout
>>>interval=15 # default interval between checks if the process is
>>>still alive
>>>delay=2 # default delay between posting the given signal and
>>> # destroying the process (kill -KILL)
>>>
>>>while :
>>>do
>>> case $1 in
>>> --) shift; break ;;
>>> -*) SIG=$1 ;;
>>> [0-9]*) timeout=$1 ;;
>>> :*) EXPR='..\(.*\)' ; interval=`expr x"$1" : "$EXPR"` ;;
>>> +*) EXPR='..\(.*\)' ; delay=`expr x"$1" : "$EXPR"` ;;
>>> *) break ;;
>>> esac
>>> shift
>>>done
>>>
>>>case $# in
>>>0) echo "$prog: $usage" >&2 ; exit 2 ;;
>>>esac
>>>
>>>(
>>> for t in $timeout $delay
>>> do
>>> while (( $t > $interval ))
>>> do
>>> sleep $interval
>>> kill -0 $$ || exit
>>> t=$(( $t - $interval ))
>>> done
>>> sleep $t
>>> kill $SIG $$ && kill -0 $$ || exit
>>> SIG=-KILL
>>> done
>>>) 2> /dev/null &
>>>
>>>exec "$@"
>>>======================================================
>>>
>>>
>>>
>>>
>>>-------------------------------------------------------
>>>This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
>>>Use IT products in your business? Tell us what you think of them. Give us
>>>Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
>>>http://productguide.itmanagersjournal.com/guidepromo.tmpl
>>>_______________________________________________
>>>Nagios-users mailing list
>>>Nagios-users at lists.sourceforge.net
>>>https://lists.sourceforge.net/lists/listinfo/nagios-users
>>>::: Please include Nagios version, plugin version (-v) and OS when
>>>reporting any issue. ::: Messages without supporting info will risk
>>>being sent to /dev/null
>>>
--
Andreas Ericsson andreas.ericsson at op5.se
OP5 AB www.op5.se
Lead Developer
-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting any issue.
::: Messages without supporting info will risk being sent to /dev/null
More information about the Users
mailing list