_____________________________________________________________________
724-746-5500 | b lackb o x.co m
Page 194
config -g $ROOTNODE.$LASTFIELDTEXT$((COUNTER)) \
| while read LINE
do
config -s \
"`echo "$LINE" | sed -e "s/$LASTFIELDTEXT$(( \
COUNTER))/$LASTFIELDTEXT$((COUNTER-1))/" \
-e 's/ /=/'`"
done
let +
done
# deleting last user
config -d $ROOTNODE.$LASTFIELDTEXT$TOTAL
# Modifying item total.
config -s "$TOTALNODE=$NEWTOTAL"
echo Done
exit 0
else
echo "error: item being deleted has an index greater than total items. Increase the total count
variable."
exit 0
fi
15.1.6 Power Cycle any device when a ping request fails
The
ping-detect
script is designed to run specified commands when a monitored host stops responding
to ping requests.
The first parameter taken by the
ping-detect
script is the hostname/IP address of the device to ping. Any
other parameters are then regarded as a command to run whenever the ping to the host fails.
ping-
detect
can run any number of commands.
Below is an example using
ping-detect
to power cycle an RPC (PDU) outlet whenever a specific host fails
to respond to a ping request. The
ping-detect
runs from
/etc/config/rc.local
to make sure that the
monitoring starts whenever the system boots.
Suppose we have a serially controlled RPC connected to port01 on a
console server
and have a router
powered by outlet 3 on the RPC (and the router has an internal IP address of 192.168.22.2). The
following instructions will show you how to continuously ping the router. When the router fails to
respond to a series of pings, the
console server
will send a command to RPC outlet 3 to power cycle the
router, and write the current date/time to a file:
-
Copy the
ping-detect
script to
/etc/config/scripts/
on the
console server
-
Open
/etc/config/rc.local
using vi
-
Add the following line to
rc.local
:
/etc/config/scripts/ping-detect 192.168.22.2 /bin/bash -c "pmpower -l port01 -o 3 cycle && date" >
/tmp/output.log &