# a lancer sous l'utilisateur postgres
echo -n 'master: ' && pg_ctl status
echo -n 'slave: ' && ssh slave pg_ctl status
echo ============================================================
echo "backup! (appuyer sur entré ou ctrl+C)" && read
psql -c "select pg_start_backup('resync',true);"
echo ============================================================
echo "stop du slave et rsync.."
ssh slave pg_ctl stop
echo -n "rsync de la base sur le slave..."
notdone=`true`
while notdone ; do
	LOAD=$( uptime | awk '{a=$10; print substr(a,0,4);}' ) || { echo "FATAL" ; exit 1; }
	if (( LOAD < 1.5 )) ; then
		rsync -e ssh -a --exclude postmaster.pid /var/lib/postgresql/9.2 slave:/var/lib/postgresql/
		if [ $? -ne 0 ]; then
			echo "problème lors de la copie vers le slave!"
			echo " [+] déblocage de l'info backup postgresql"
			psql -c "select pg_stop_backup();"
			echo " [$?] select pg_stop_backup();"
			break
		else
			notdone=`false`
		fi
	else
		echo -n .
		sleep 30s
	fi
done
psql -c "select pg_stop_backup();"
echo ============================================================
echo "semble ok, start du slave"
ssh slave cp /etc/postgresql/9.2/main/postgresql.conf ./9.2/main/
echo "se loguer sur le slave, et relancez le postgresql! /etc/init.d/postgresql start"
echo "ou bien plus crade: ssh slave exec pg_ctl start \&"
echo done.
