DB_DUMP_BASE="$RESTOREDIR/var/backups/mysql/sqldump/"
mkdir -p $RESTOREDIR
}
+
+# Restore a database
+function hydra_backup_restore_database {
+ DATABASE="$1"
+
+ if [ -z "$DATABASE" ]; then
+ return
+ fi
+
+ # Check if there are database dumps
+ if [ -f "$DB_DUMP_BASE/$DATABASE.sql.gz" ]; then
+ DB_DUMP_EXT=".gz"
+ DB_DUMP_EXTRACT="gunzip"
+ elif [ -f "$DB_DUMP_BASE/$DATABASE.sql.bz2" ]; then
+ DB_DUMP_EXT=".bz2"
+ DB_DUMP_EXTRACT="bunzip2"
+ elif [ -f "$DB_DUMP_BASE/$DATABASE.sql" ]; then
+ DB_DUMP_EXT=""
+ DB_DUMP_EXTRACT="true"
+ fi
+
+ # Restore database
+ if [ ! -z "$DB_DUMP_EXT" ]; then
+ echo "Restoring database $DATABASE..."
+ hydra_set_tmpfile $DATABASE -d
+ cp $DB_DUMP_BASE/$DATABASE.sql$DB_DUMP_EXT $TMPWORK
+ ( cd $TMPWORK && $DB_DUMP_EXTRACT $DATABASE.sql$DB_DUMP_EXT )
+ hydra_truncate_database $DATABASE
+ mysql $DATABASE < $TMPWORK/$DATABASE.sql
+ hydra_unset_tmpfile $TMPWORK
+ else
+ echo "Database should be manually restored"
+ fi
+}
fi
fi
-# 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
+hydra_backup_restore_database $SITE
# Ikiwiki
if [ -e "$FOLDER/ikiwiki" ]; then
# Parameters.
DATE="`date +%Y%m%d`"
LISTS_DIR="/var/mail/virtual"
-SITE="sympa"
# Check restore strategy.
if [ "$1" == "localhost" ] || [ "$1" == "`facter hostname`" ]; then
#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
+hydra_backup_restore_database sympa
# Fix permissions.
chown -R $LISTS_USER.$LISTS_GROUP $LISTS_DIR