misc-scripts/routers/primary-router.sh

63 lines
1.2 KiB
Bash
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
(
. /etc/router-checks.conf
exec >>$LOG_FILE 2>&1
date
echo "... STARTING"
. "$LIB_DIR/pings"
echo $$ > $PID_FILE
stop_file="$PID_FILE.$$"
trap "rm -f $stop_file" SIGINT SIGTERM
touch $stop_file
SLEEP_TIME=60
while [ -f "$stop_file" ]; do
sleep $SLEEP_TIME
SLEEP_TIME=1
pr_switch=`mktemp`
if [ -f "$ACTIVATION_FILE" ]; then
# When the primary router is active, disable it if the switch
# is off-line
wait_pings `try_ping $SWITCH_ADDR $pr_switch`
if [ -f "$pr_switch" ]; then
date
echo "de-activating connection"
$LIB_DIR/deactivate.sh
rm -f "$ACTIVATION_FILE"
SLEEP_TIME=10
fi
else
# When the primary router is inactive, enable it if the switch
# is up and the main router IP does not exist
pr_main=`mktemp`
wait_pings `try_ping $SWITCH_ADDR $pr_switch` \
`try_ping $MAIN_ADDR $pr_main`
if [ -f "$pr_main" ] && ! [ -f "$pr_switch" ]; then
date
echo "activating connection"
$LIB_DIR/activate.sh
touch "$ACTIVATION_FILE"
SLEEP_TIME=20
fi
rm -f "$pr_main"
fi
rm -f "$pr_switch"
done
if [ -f "$ACTIVATION_FILE" ]; then
$LIB_DIR/deactivate.sh
rm -f "$ACTIVATION_FILE"
fi
date
echo "... EXITING"
rm "$PID_FILE"
) &