Tripp Lite B0930042E4U Owners Manual for B093- B097- and B098-Series Console S - Page 239

Power Cycle Any Device upon a Ping Request Failure

Page 239 highlights

15. Advanced Configuration # 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 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 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 is run from /etc/config/rc.local to ensure the monitoring starts whenever the system boots. Assuming a serially-controlled RPC is connected to port01 on a console server and a router is 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 & The above command will cause the ping-detect script to continuously ping the host at 192.168.22.2 (i.e. 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 file /tmp/output.log to maintain a 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. Ping-Detect Script The above is just one example of using the ping-detect script. The concept behind 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/'` 239

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288

239
15. Advanced Configuration
# 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
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 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 is run from
/etc/config/rc.local
to ensure the monitoring starts whenever the system boots.
Assuming a serially-controlled RPC is connected to port01 on a console server and a router is 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 &
The above command will cause the ping-detect script to continuously ping the host at 192.168.22.2 (i.e. 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 file
/tmp/output.log
to maintain a 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.
Ping-Detect Script
The above is just one example of using the ping-detect script. The concept behind 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/’`