Console Server & Router User Manual
271
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
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 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 &
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 $C 1`
else
COUNTER=0
sleep 30s
fi
if [ "$COUNTER" -eq 5 ]
then
COUNTER=0
Содержание ACM5000
Страница 3: ......
Страница 10: ...Table of Contents 10 Console Server RIM Gateway User Manual...
Страница 11: ......
Страница 94: ...Chapter 5 Firewall Failover and Out of Band 94 Console Server RIM Gateway User Manual...
Страница 119: ......
Страница 149: ......
Страница 191: ......
Страница 205: ......
Страница 225: ......
Страница 303: ......
Страница 313: ......
Страница 323: ......