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