#!/bin/bash # Setup environment for the backups website function hydra_backup_environment_local_website { NODE="$1" SITE="$2" BACKUPDIR="/var/sites/backups/site/$SITE/$NODE" if [ -z "$SITE" ] || [ -z "$NODE" ]; then hydra_action_usage exit 1 fi if [ ! -z "$DATE" ]; then RESTOREDIR="$BACKUPDIR/$DATE" else RESTOREDIR="$BACKUPDIR/`date +%Y%m%d`" fi DB_DUMP_BASE="$RESTOREDIR" mkdir -p $RESTOREDIR } # Setup environment for backup restored from localhost function hydra_backup_environment_local { BACKUPDIR="/var/backups/duplicity" if [ ! -z "$DATE" ]; then RESTOREDIR="/var/backups/restore/$DATE" else RESTOREDIR="/var/backups/restore/`date +%Y%m%d`" fi DB_DUMP_BASE="$RESTOREDIR/var/backups/mysql/sqldump/" mkdir -p $RESTOREDIR } # Setup environment for backup restored from remote source function hydra_backup_environment_remote { NODE="$1" METHOD="$2" BACKUP_ROOT="/var/backups/remote" DOMAIN="`facter domain`" BACKUPDIR="$BACKUP_ROOT/$NODE.$DOMAIN" if [ ! -z "$DATE" ]; then RESTOREDIR="$BACKUPDIR/restore/$DATE" else RESTOREDIR="$BACKUPDIR/restore/`date +%Y%m%d`" fi if [ -z "$NODE" ]; then hydra_action_usage exit 1 fi if [ ! -d "$BACKUPDIR" ]; then echo "No backup found at $BACKUPDIR" exit 1 fi if [ -z "$METHOD" ]; then if [ -d "$BACKUPDIR/rsync" ]; then echo "Assuming rsync backup method" BACKUPDIR="$BACKUPDIR/rsync/var/backups/duplicity/daily.1" elif [ -d "$BACKUPDIR/rdiff" ]; then echo "Assuming rdiff backup method" BACKUPDIR="$BACKUPDIR/rdiff/var/backups/duplicity" else echo "Missing backup action" exit 1 fi else if [ -d "$BACKUPDIR/$METHOD" ]; then BACKUPDIR="$BACKUPDIR/$METHOD" else echo "Backup folder for $METHOD not found at $BACKUPDIR" exit 1 fi fi if [ -d "$RESTOREDIR" ] && [ "$METHOD" != "restore" ]; then echo "Restoration folder $RESTOREDIR already exists" exit 1 fi DB_DUMP_BASE="$RESTOREDIR/var/backups/mysql/sqldump/" mkdir -p $RESTOREDIR }