diff --git a/start.sh b/start.sh index ecb291e..f3929c7 100755 --- a/start.sh +++ b/start.sh @@ -102,9 +102,6 @@ backup(){ # Backupverzeichnisse einrichten move_to_ROOT - # neue Konfiguration lesen - #source "$CONFIG_DIR/$1" - # SCHRITT 1: # sichern der MySQL-Datenbanken auf dem remote host # es muss auf dem remote host genug Platz auf der Festplatte geben damit Dump erfolgen kann! @@ -163,9 +160,26 @@ r_files(){ fi } -r_mysql(){ +import_sql(){ ## Import einer MySQL-DB von einem SQL-Script aus einem vorher (!) wiederherstellen Ordner - sleep 1 + + if [ "$MYSQL_CONTAINER" != '' ] + then + FROM_FILE=${BACKUP_DIR_CONTAINERS}/${MYSQL_CONTAINER}/${1}.sql + else + FROM_FILE=${BACKUP_DIR_FILES}/${MYSQL_DUMP_DIR}/${1}.sql + fi + + r_files "$FROM_FILE" "${REMOTE_USER}@${REMOTE_HOST}::${MYSQL_DUMP_DIR}/${1}.sql" "$2" + + if [ "$MYSQL_CONTAINER" != '' ] + then + ssh ${REMOTE_USER}@${REMOTE_HOST} "docker exec -i \"$MYSQL_CONTAINER\" mysql -u \"$MYSQL_USER\" \"-p$MYSQL_PASS\" < \"$MYSQL_DUMP_DIR/${1}.sql\"" + else + ssh ${REMOTE_USER}@${REMOTE_HOST} "mysql -u \"$MYSQL_USER\" \"-p$MYSQL_PASS\" < \"$MYSQL_DUMP_DIR/${1}.sql\"" + fi + + [ "$MYSQL_DUMP_DIR" != "" ] && [ "$MYSQL_DUMP_DIR" != "/" ] && ssh ${REMOTE_USER}@${REMOTE_HOST} "rm -rf \"$MYSQL_DUMP_DIR/${1}.sql\"" } r_vol(){ @@ -181,17 +195,23 @@ r_mysql_cont(){ restore(){ read_config "$1" - echo Start restore $1 -> $2 + echo Start restore $1 to $2 echo ================================================== - # neue Konfiguration lesen - #source "$CONFIG_DIR/$1" # SCHRITT 1: # Alle Dateien und Ordner aus dem letzten Backup wiederherstellen if [ ${#MYSQL_DB[@]} -gt 0 ] then - FOLDERS+=("$MYSQL_DUMP_DIR") + #FOLDERS+=("$MYSQL_DUMP_DIR") + + ## jede SQL-Datei einzeln hochladen + + for db in "${MYSQL_DB[@]}" + do + echo restore database: "$db" + import_sql "$db" "$2" + done fi for dir in "${FOLDERS[@]}" @@ -199,16 +219,6 @@ restore(){ # die eigentliche Wiederherstellung ... r_files "${BACKUP_DIR_FILES}/${dir}" "${REMOTE_USER}@${REMOTE_HOST}::${dir}" "$2" done - # SCHRITT 2: - # Datenbanken wiederherstellen - - for db in "${MYSQL_DB[@]}" - do - echo restore database: "$db" - ssh ${REMOTE_USER}@${REMOTE_HOST} "mysql -u \"$MYSQL_USER\" \"-p$MYSQL_PASS\" < \"$MYSQL_DUMP_DIR/$db.sql\"" - [ "$MYSQL_DUMP_DIR" != "" ] && [ "$MYSQL_DUMP_DIR" != "/" ] && ssh ${REMOTE_USER}@${REMOTE_HOST} "rm -rf \"$MYSQL_DUMP_DIR/$db.sql\"" - done - echo Done restore $1 echo