summaryrefslogtreecommitdiff
path: root/share/hydractl/backup-restore-sympa
diff options
context:
space:
mode:
Diffstat (limited to 'share/hydractl/backup-restore-sympa')
-rwxr-xr-xshare/hydractl/backup-restore-sympa28
1 files changed, 28 insertions, 0 deletions
diff --git a/share/hydractl/backup-restore-sympa b/share/hydractl/backup-restore-sympa
index 868789d..5f13665 100755
--- a/share/hydractl/backup-restore-sympa
+++ b/share/hydractl/backup-restore-sympa
@@ -23,6 +23,7 @@ hydra_config_load
# Parameters.
DATE="`date +%Y%m%d`"
LISTS_DIR="/var/mail/virtual"
+SITE="sympa"
# Check restore strategy.
if [ "$1" == "localhost" ] || [ "$1" == "`facter hostname`" ]; then
@@ -60,6 +61,33 @@ fi
#rsync -av $RESTOREDIR/$LISTS_DIR/bounce/ $LISTS_DIR/bounce/
rsync -av --delete $RESTOREDIR/$LISTS_DIR/ $LISTS_DIR/
+DB_DUMP_BASE="$RESTOREDIR/var/backups/mysql/sqldump"
+
+# Check if there are database dumps
+if [ -f "$DB_DUMP_BASE/$SITE.sql.gz" ]; then
+ DB_DUMP_EXT=".gz"
+ DB_DUMP_EXTRACT="gunzip"
+elif [ -f "$DB_DUMP_BASE/$SITE.sql.bz2" ]; then
+ DB_DUMP_EXT=".bz2"
+ DB_DUMP_EXTRACT="bunzip2"
+elif [ -f "$DB_DUMP_BASE/$SITE.sql" ]; then
+ DB_DUMP_EXT=""
+ DB_DUMP_EXTRACT="true"
+fi
+
+# Restore database
+if [ ! -z "$DB_DUMP_EXT" ]; then
+ echo "Restoring database $SITE..."
+ hydra_set_tmpfile $SITE -d
+ cp $DB_DUMP_BASE/$SITE.sql$DB_DUMP_EXT $TMPWORK
+ ( cd $TMPWORK && $DB_DUMP_EXTRACT $SITE.sql$DB_DUMP_EXT )
+ hydra_truncate_database $SITE
+ mysql $SITE < $TMPWORK/$SITE.sql
+ hydra_unset_tmpfile $TMPWORK
+else
+ echo "Database should be manually restored"
+fi
+
# Fix permissions.
chown -R $LISTS_USER.$LISTS_GROUP $LISTS_DIR