Slight redesign so that secondary box only runs script manually when someone wants it to take over

2021
Eric Loyd 5 years ago
parent cf00fbedec
commit e694728e99

@ -1,10 +1,17 @@
FAILOVER=/home/nagios/bin/failover.sh
default: test default: test
test: test:
./failover.sh -P primary.localdomain -S secondary.localdomain ${FAILOVER} -P primary.localdomain -S secondary.localdomain
go: go:
./failover.sh -P primary.localdomain -S secondary.localdomain -E ${FAILOVER} -P primary.localdomain -S secondary.localdomain -E
force:
${FAILOVER} -P primary.localdomain -S secondary.localdomain -E --force
copy-test:
rsync -avun /home/nagios/princeton/failover/ /home/nagios/bin/
copy: copy:
rsync -avu /home/nagios/princeton/failover/ /home/nagios/bin/ rsync -avu /home/nagios/princeton/failover/ /home/nagios/bin/

@ -0,0 +1,3 @@
#!/bin/sh
/home/nagios/bin/failover.sh -P primary.localdomain -S secondary.localdomain -E --force

@ -44,14 +44,10 @@ ping_host() {
} }
stop_nagios() { stop_nagios() {
verbose "Ensuring Nagios services are stopped because we are the secondary"
sleep 2
/home/nagios/bin/nagios_startstop.sh stop /home/nagios/bin/nagios_startstop.sh stop
} }
start_nagios() { start_nagios() {
verbose "Ensuring Nagios services are stopped because we are the secondary"
sleep 2
/home/nagios/bin/nagios_startstop.sh start /home/nagios/bin/nagios_startstop.sh start
} }
@ -82,20 +78,27 @@ do_primary() {
do_secondary() { do_secondary() {
verbose "We are the secondary. Checking to see if primary is on the network..." verbose "We are the secondary. Checking to see if primary is on the network..."
ping_host ${primary} ping_host ${primary}
if [ $? -eq 0 -a -z "$force" ]; then if [ $? -eq 0 ]; then
warning "The primary (${primary}) is on the network. This process will be aborted. Use --force to force it to continue." if [ -z $force ]; then
exit 1 warning "The primary (${primary}) is on the network. This process will be aborted. Use --force to force it to continue."
exit 1
else
warning "The primary (${primary}) is on the network but --force specified. Proceeding anyway."
fi
fi fi
verbose "Expanding package from the primary" verbose "Expanding package from the primary"
syncfile=$(basename `ls -tr1 ${backupDir}/${syncname}* | tail -1`) syncfile=$(basename `ls -tr1 ${backupDir}/${syncname}* | tail -1`)
[ -z "$syncfile" ] && error "No sync file ($syncfile) found." && exit 2 [ -z "$syncfile" ] && error "No sync file ($syncfile) found." && exit 2
/home/nagios/bin/rsync_xi.sh --primary "${primary}" --secondary "${secondary}" --file "/store/backups/nagiosxi/$syncfile" /home/nagios/bin/rsync_xi.sh --primary "${primary}" --secondary "${secondary}" --file "/store/backups/nagiosxi/$syncfile"
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
# stop_nagios sleep 2
if [ -r "/usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css.secondary" -a -w "/usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css" ]; then if [ -r "/usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css.secondary" -a -w "/usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css" ]; then
cp /usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css.secondary /usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css cp /usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css.secondary /usr/local/nagiosxi/html/includes/components/custom-includes/css/header-gradient.css
fi fi
verbose "This is intended to be manually executed when needed, so we assume you want to start Nagios..." -n
start_nagios
rm -f ${syncfile} rm -f ${syncfile}
verbose "Done."
fi fi
} }

@ -8,7 +8,6 @@ PATH=/home/nagios/bin:/usr/bin:/bin
. /home/nagios/bin/colors.sh . /home/nagios/bin/colors.sh
BASEDIR="/usr/local/nagiosxi/scripts" BASEDIR="/usr/local/nagiosxi/scripts"
SBLOG="/usr/local/nagiosxi/var/components/scheduledbackups.log"
timeStamp=`date +%s` timeStamp=`date +%s`
hostname="`/bin/hostname`" hostname="`/bin/hostname`"
@ -83,8 +82,8 @@ while [ -n "$1" ]; do
done done
do_primary() { do_primary() {
ping_host $sName #ping_host $sName
[ $? -ne 0 ] && echo "Cannot ping $sName. Use --noping to continue wihout ping." && exit #[ $? -ne 0 ] && echo "Cannot ping $sName. Use --noping to continue wihout ping." && exit
echo "Starting sync from $pName to $sName" echo "Starting sync from $pName to $sName"
# Restart nagios to forcibly update retention.dat # Restart nagios to forcibly update retention.dat
@ -231,15 +230,15 @@ fi
############################## ##############################
# COMPRESS BACKUP # COMPRESS BACKUP
############################## ##############################
echo "Compressing backup..." verbose "Compressing database file..." -n
tar czfp $name.tar.gz $name tar czfp $name.tar.gz $name
rm -rf $name rm -rf $name
verbose "Done."
# Change ownership # Change ownership
chown $nagiosuser:$nagiosgroup $name.tar.gz chown $nagiosuser:$nagiosgroup $name.tar.gz
if [ -s $name.tar.gz ];then if [ -s $name.tar.gz ];then
echo " " echo " "
echo "===============" echo "==============="
echo "BACKUP COMPLETE" echo "BACKUP COMPLETE"
@ -255,6 +254,7 @@ else
exit 1; exit 1;
fi fi
do_rsync $rootdir/$name.tar.gz do_rsync $rootdir/$name.tar.gz
rm -Rf $rootdir/$name.tar.gz
} # End of do_backup_sql } # End of do_backup_sql
do_backup_files do_backup_files

Loading…
Cancel
Save