Presets
backup_db.sh
#!/bin/bash # Konfiguration DB_NAME="name" DB_USER="user" DB_PASS="password" BACKUP_DIR="./$DB_NAME" # Sicherungsverzeichnis erstellen mkdir -p "$BACKUP_DIR" # Alle Tabellen abrufen TABLES=$(mysql -u "$DB_USER" -p"$DB_PASS" -e "SHOW TABLES IN $DB_NAME;" | tail -n +2) # Jede Tabelle einzeln sichern for TABLE in $TABLES; do echo "Sichere Tabelle: $TABLE..." # mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" "$TABLE" > "$BACKUP_DIR/$TABLE.sql" mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" "$TABLE" | gzip > "$BACKUP_DIR/$TABLE.sql.gz" done echo "Backup abgeschlossen! Alle Tabellen wurden in $BACKUP_DIR gespeichert."
restore_db.sh
#!/bin/bash # Konfiguration BACKUP_DIR="./meine_datenbank" TARGET_DB="db_name" DB_USER="user" DB_PASS="password" LOG_FILE="restore_errors.log" # Sicherstellen, dass die Zieldatenbank existiert mysql -u "$DB_USER" -p"$DB_PASS" -e "CREATE DATABASE IF NOT EXISTS $TARGET_DB;" # Logdatei zurücksetzen > "$LOG_FILE" # Wiederherstellung jeder Tabelle # for FILE in "$BACKUP_DIR"/*.sql; do for FILE in "$BACKUP_DIR"/*.sql.gz; do # TABLE=$(basename "$FILE" .sql) TABLE=$(basename "$FILE" .sql.gz) echo "Stelle Tabelle $TABLE wieder her..." # mysql -u "$DB_USER" -p"$DB_PASS" "$TARGET_DB" < "$FILE" 2>> "$LOG_FILE" gunzip -c "$FILE" | mysql -u "$DB_USER" -p"$DB_PASS" "$TARGET_DB" 2>> "$LOG_FILE" if [ $? -ne 0 ]; then echo "Fehler beim Wiederherstellen der Tabelle: $TABLE" fi done echo "Wiederherstellung abgeschlossen!" echo "Fehlerprotokoll: $LOG_FILE"