#!/bin/bash
# $Id: iptkovr,v 1.23 2014/05/23 14:08:24 fulford Exp $
# $Source: /src/merlin/usr/local/etc/RCS/iptkovr,v $
# $Revision: 1.23 $
# Author C W Fulford.
# Copyright 2014 (c) C W Fulford.
# Licensed for public use under the LGPL, .
# For assistance contact fulford@fulford.net 0709 229 5385
########################################################################
cmd=`basename $0`
fcmd="$@"
syntax="$cmd [-c <config_file>] [-d] [-v] <target>"
while [ $# -gt 0 ] ;do
case $1 in
-c) config=$1;shift 2;;
-d) debug=:;set -x;shift;;
-v) verbose=:;shift;;
*) target=$1;shift;;
esac
done
config=${config:-"/usr/local/etc/iptkovr.cf"}
[ -f $config ] ||{
echo "$cmd: can't find $config" >&2
echo "$cmd: closing down" >&2
exit 1
}
eval `sed -ne "/$id:/,/^$/{
/^[ ][^#]*/p
}" $config`
id=`id -un`
ok=:
cloneip=`getent hosts $clone|awk '{print $1}'`
targetip=`getent hosts $target|awk '{print $1}'`
txt=00022220009@txtservice.co.uk
[ $verbose ] && {
echo "$cmd: monitoring $target on $targetip" >&2
}
if ping -c 1 $cloneip >/dev/null 2>&1 ;then
[ $verbose ] && echo "$cmd: $clone at $cloneip on standby">&2
else
echo "$cmd: standby $clone down - terminating" >&2
exit 1
fi
while [ $ok ];do
if ping -c 1 $targetip >/dev/null 2>&1;then
sleep $sleep
else
[ $verbose ] && {
echo "$cmd: $target not responding on $targetip" >&2
}
sleep $sleep
if ping -c 1 $targetip >/dev/null 2>&1 ;then
[ $verbose ]&&{
echo "$cmd: hiccup only, monitoring $target on $targetip">&2
}
else
unset ok
fi
fi
done
msg="$target down - activating $targetip on $clone"
[ $verbose ]&& echo "$cmd: $msg" >&2
logger -p local0.alert "$msg"
#mailx -s "URGENT $target down" -c $txt $id <<- .
mailx -s "URGENT $target down" $id <<- .
$msg
.
ssh -t $cloneip "sudo ifconfig $vif $targetip/24" 2>/dev/null
sleep 3
if ping -c 1 $targetip >/dev/null 2>&1 ;then
echo "$cmd: ip takeover of $targetip complete"
else
echo "$cmd: ip takeover of $targetip failed" >&2
fi
[ $verbose ] && echo "$cmd: terminating">&2
######################################################################
# This program is free software: you can redistribute it and or #
# modify it under the terms of the Lesser GNU General Public License #
# as published by the Free Software Foundation, either version 3 of #
# the License, or (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# A copy of the Lesser GNU General Public License and the GNU #
# General Public License is available at #
# <http://www.gnu.org/licenses/>. #
######################################################################
Copyright
© 2003-2017
Clifford W Fulford.
Fulford Consulting Ltd.
Regd. Co. 4250037 in England & Wales.
Regd. office 162, Edward Rd. Nottingham NG2 5GF, England, UK.
Related web sites: City Linux | Flare Support | West Bridgford | Fulford Portal | Joan Mary Fulford (Nottingham Writer) | Fulford Gallery | Amharic Interpreter | Arabic Interpreter | Tigrinya Interpreter
The layout and associated style sheets for this page are taken from the World Wide Web Consortium and used here under the W3C software licence.