Ich habe Dein script versucht, jedoch mit selben Ergebniss.
Ich habe nun mal das script angepasst und mit folgender Prozedur bin ich nun auch zum Ziel gekommen.
Alles files von oben, bis auf restore_ox sind OK und können verwendet werden.
1.) initall_ox ausführen
2.) Daten erzeugen
3.) backup_ox ausführen
4.) Nun bin ich von einem Datenverlust ausgegangen und habe OX neu inizialisiert mit initall_ox und hatte ein neues OX ohne Daten.
5.) mit der neuen angepassten restore_ox alle Daten wieder hergestellt.
Dieser restore_ox wird bei jedem signal-event post-upgrade durchgeführt!
Hier nun das restore_ox:
#!/bin/bash
PATH=/usr/local/sbin:$PATH
export PATH
function StopServices() {
#########################################################################
service open-xchange stop 2>&1 >/dev/null
service postgresql stop 2>&1 >/dev/null
service ldap stop 2>&1 >/dev/null
}
function StartServices() {
#########################################################################
service postgresql start 2>&1 >/dev/null
service ldap start 2>&1 >/dev/null
service open-xchange start 2>&1 >/dev/null
}
function RestoreOX() {
DOMAIN=`/sbin/e-smith/db configuration get DomainName`
if [ -z $DOMAIN ]; then
echo "error : the domain is unknow"
exit 1
fi
if [ ! -f /home/e-smith/db/pgsql/ox_$DOMAIN.sql ]; then
echo "error : "
echo "file /home/e-smith/db/pgsql/ox_$DOMAIN.sql doesn't exists, unable to restore"
exit 1
fi
if [ ! -f /home/e-smith/db/ldap/$DOMAIN.ldif.bak ]; then
echo "error : "
echo "file /home/e-smith/db/ldap/$DOMAIN.ldif.bak doesn't exists, unable to restore"
exit 1
fi
if [ ! -d /home/e-smith/open-xchange ]; then
echo "error : "
echo "files /home/e-smith/open-xchange/ doesn't exists, unable to restore"
exit 1
fi
StopServices
##########################################################################
# LDAP
rm -f /var/lib/ldap/*
slapadd -l /home/e-smith/db/ldap/$DOMAIN.ldif.bak
chown -R ldap:ldap /var/lib/ldap
service ldap start 2>&1 >/dev/null
###########################################################################
# Postgresql
/sbin/e-smith/expand-template /var/lib/pgsql/data/postgresql.conf
/sbin/e-smith/expand-template /var/lib/pgsql/data/pg_hba.conf
chown -R postgres:postgres /var/lib/pgsql
chmod 600 /var/lib/pgsql/data/postgresql.conf
chmod 600 /var/lib/pgsql/data/pg_hba.conf
service postgresql start 2>&1 >/dev/null
su postgres -c'pg_dump -Fc -b openexchange -v' > /home/e-smith/db/pgsql/openexchange.sql.bak
su - -c'dropdb openexchange' postgres
su - -c'dropuser openexchange' postgres
su - -c'createdb --template=template0 -E UNICODE -e openexchange' postgres
su - -c'psql -a -e -d openexchange -e -f /usr/local/open-xchange/share/createuser.sql' postgres
#!/bin/bash
su postgres -c'pg_restore -d openexchange -v /home/e-smith/db/pgsql/ox_'$DOMAIN'.sql'
###############################################################################
# FILES
/usr/bin/rsync -aur --delete /home/e-smith/open-xchange/var /usr/local/open-xchange
StartServices
/usr/local/open-xchange/sbin/scan_users.sh
}
##############################################################################################################################################
function RestoreOXHA() {
DOMAIN=`/sbin/e-smith/db configuration get DomainName`
if [ -z $DOMAIN ]; then
echo "error : the domain is unknow"
exit 1
fi
if [ ! -f /home/e-smith/files/db/pgsql/ox_$DOMAIN.sql ]; then
echo "error : "
echo "file /home/e-smith/files/db/pgsql/ox_$DOMAIN.sql doesn't exists, unable to restore"
exit 1
fi
if [ ! -f /home/e-smith/files/db/ldap/$DOMAIN.ldif.bak ]; then
echo "error : "
echo "file /home/e-smith/files/db/ldap/$DOMAIN.ldif.bak doesn't exists, unable to restore"
exit 1
fi
if [ ! -d /home/e-smith/files/saves/open-xchange ]; then
echo "error : "
echo "files /home/e-smith/files/saves/open-xchange/ doesn't exists, unable to restore"
exit 1
fi
StopServices
##########################################################################
# LDAP
rm -f /var/lib/ldap/*
slapadd -l /home/e-smith/files/db/ldap/$DOMAIN.ldif.bak
chown -R ldap:ldap /var/lib/ldap
service ldap start 2>&1 >/dev/null
###########################################################################
# Postgresql
/sbin/e-smith/expand-template /var/lib/pgsql/data/postgresql.conf
/sbin/e-smith/expand-template /var/lib/pgsql/data/pg_hba.conf
chown -R postgres:postgres /var/lib/pgsql
chmod 600 /var/lib/pgsql/data/postgresql.conf
chmod 600 /var/lib/pgsql/data/pg_hba.conf
service postgresql start 2>&1 >/dev/null
su postgres -c'pg_dump -Fc -b openexchange -v' > /home/e-smith/files/db/pgsql/openexchange.sql.bak
su - -c'dropdb openexchange' postgres
su - -c'dropuser openexchange' postgres
su - -c'createdb --template=template0 -E UNICODE -e openexchange' postgres
su - -c'psql -a -e -d openexchange -e -f /usr/local/open-xchange/share/createuser.sql' postgres
#!/bin/bash
su postgres -c'pg_restore -d openexchange -v /home/e-smith/db/pgsql/ox_'$DOMAIN'.sql'
###############################################################################
# FILES
/usr/bin/rsync -aur --delete /home/e-smith/files/saves/open-xchange/var /usr/local/open-xchange
StartServices
/usr/local/open-xchange/sbin/scan_users.sh
}
###################################################################################################################
# check for heartbeat system
if [ -x /usr/local/sbin/getnode ]; then
MYNODE=`getnode`
HERIP=`getnode --mirror --ip`
HERNAME=`getnode --mirror`
# first thing verify if whe are the active node
ACTIV=`/sbin/e-smith/db heartbeat getprop nodes Active`
if [ $MYNODE == $ACTIV ]; then
RestoreOXHA
fi
else
RestoreOX
fi