#!/bin/sh
|
#
|
# (C) 2008 by Pablo Neira Ayuso <pablo@netfilter.org>
|
# (C) 2009 Roman I Khimov <khimov@altell.ru>
|
#
|
# This software may be used and distributed according to the terms
|
# of the GNU General Public License, incorporated herein by reference.
|
#
|
# Description:
|
#
|
# This is the script for primary-backup setups for keepalived
|
# (http://www.keepalived.org). You may adapt it to make it work with other
|
# high-availability managers.
|
#
|
# Do not forget to include the required modifications to your keepalived.conf
|
# file to invoke this script during keepalived's state transitions.
|
#
|
# Contributions to improve this script are welcome :).
|
#
|
## Modified to work as init.d script under pacemaker control
|
|
CONNTRACKD_BIN=/usr/sbin/conntrackd
|
CONNTRACKD_LOCK=/var/lock/conntrack.lock
|
CONNTRACKD_CONFIG=/etc/conntrackd/conntrackd.conf
|
|
case "$1" in
|
start)
|
#
|
# commit the external cache into the kernel table
|
#
|
$CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -c
|
if [ $? -eq 1 ]
|
then
|
logger "ERROR: failed to invoke conntrackd -c"
|
fi
|
|
#
|
# flush the internal and the external caches
|
#
|
$CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -f
|
if [ $? -eq 1 ]
|
then
|
logger "ERROR: failed to invoke conntrackd -f"
|
fi
|
|
#
|
# resynchronize my internal cache to the kernel table
|
#
|
$CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -R
|
if [ $? -eq 1 ]
|
then
|
logger "ERROR: failed to invoke conntrackd -R"
|
fi
|
|
#
|
# send a bulk update to backups
|
#
|
$CONNTRACKD_BIN -C $CONNTRACKD_CONFIG -B
|
if [ $? -eq 1 ]
|
then
|
logger "ERROR: failed to invoke conntrackd -B"
|
fi
|
;;
|
stop)
|
$CONNTRACKD_BIN -t
|
$CONNTRACKD_BIN -n
|
;;
|
status)
|
;;
|
*)
|
logger "ERROR: unknown command"
|
echo "Usage: conntrack-failover {start|stop|status}"
|
exit 1
|
;;
|
esac
|
|
exit 0
|