EasyManua.ls Logo

Tripp Lite B092-016 - Power Cycle any Device Upon a Ping Request Failure

Tripp Lite B092-016
257 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
207
Chapter 15: Advanced Configuration
15.1.6 Power cycle any device upon a ping request failure
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specichostfailstorespondtoaping
request. The ping-detect is run from /etc/config/rc.local to make sure that the monitoring starts whenever the system boots.
So if we assume 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and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le:
• 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 &
Theabovecommandwillcausetheping-detectscripttocontinuouslypingthehostat192.168.22.2whichistherouter.Ifthe
routercrashesitwillnolongerrespondtopingrequests.Ifthishappens,thetwocommandspmpower and date will run. The
output from these commands is sent to the file /tmp/output.log so that we have some kind of record. The ping-detect is also
runinthebackgroundusingthe"&".
Remember the rc.local script is only run by default when the system boots. You can manually run the rc.local script or the
ping-detectscriptifdesired.
The ping-detect script
Theaboveisjustoneexampleofusingtheping-detect script. The idea of the script is to run any number of commands when
a specific host stops responding to ping requests. Here are details of the ping-detect script itself:
#!/bin/sh
# Usage: ping-detect HOST [COMMANDS...]
# This script takes 2 types of arguments: hostname/IPaddress to ping, and the commands to
# run if the ping fails 5 times in a row. This script can only take one host/IPaddress per
# instance. Multiple independent commands can be sent to the script. The commands will be
# run one after the other.
#
# PINGREP is the entire reply from the ping command
# LOSS is the percentage loss from the ping command
# $1 must be the hostname/IPaddress of device to ping
# $2... must be the commands to run when the pings fail.
COUNTER=0
TARGET="$1"
shift
# loop indefinitely:
while true
do
# ping the device 10 times
PINGREP=`ping -c 10 -i 1 "$TARGET" `
#get the packet loss percentage
LOSS=`echo "$PINGREP" | grep "%" | sed -e 's/.* \([0-9]*\)% .*/\1/'`
if [ "$LOSS" -eq "100" ]
then
COUNTER=`expr $COUNTER + 1`
else
COUNTER=0
sleep 30s

Table of Contents

Other manuals for Tripp Lite B092-016

Related product manuals