diff options
Diffstat (limited to 'share/hydractl/backup-restore-sympa')
-rwxr-xr-x | share/hydractl/backup-restore-sympa | 28 |
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 |