diff --git a/failover/Makefile b/failover/Makefile index a840e8c..e110240 100644 --- a/failover/Makefile +++ b/failover/Makefile @@ -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/ + diff --git a/failover/START b/failover/START new file mode 100755 index 0000000..9173908 --- /dev/null +++ b/failover/START @@ -0,0 +1,3 @@ +#!/bin/sh + +/home/nagios/bin/failover.sh -P primary.localdomain -S secondary.localdomain -E --force diff --git a/failover/failover.sh b/failover/failover.sh index 9c4baf0..529e26c 100755 --- a/failover/failover.sh +++ b/failover/failover.sh @@ -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 - warning "The primary (${primary}) is on the network. This process will be aborted. Use --force to force it to continue." - exit 1 + 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 } diff --git a/failover/rsync_xi.sh b/failover/rsync_xi.sh index faa9b3d..74a06ea 100755 --- a/failover/rsync_xi.sh +++ b/failover/rsync_xi.sh @@ -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