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
test:
./failover.sh -P primary.localdomain -S secondary.localdomain
${FAILOVER} -P primary.localdomain -S secondary.localdomain
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:
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() {
verbose "Ensuring Nagios services are stopped because we are the secondary"
sleep 2
/home/nagios/bin/nagios_startstop.sh stop
}
start_nagios() {
verbose "Ensuring Nagios services are stopped because we are the secondary"
sleep 2
/home/nagios/bin/nagios_startstop.sh start
}
@ -82,20 +78,27 @@ do_primary() {
do_secondary() {
verbose "We are the secondary. Checking to see if primary is on the network..."
ping_host ${primary}
if [ $? -eq 0 -a -z "$force" ]; then
if [ $? -eq 0 ]; then
if [ -z $force ]; then
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
verbose "Expanding package from the primary"
syncfile=$(basename `ls -tr1 ${backupDir}/${syncname}* | tail -1`)
[ -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"
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
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
verbose "This is intended to be manually executed when needed, so we assume you want to start Nagios..." -n
start_nagios
rm -f ${syncfile}
verbose "Done."
fi
}

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

Loading…
Cancel
Save