#!/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 
 |