server:gitea:restore:scripte:start
Skripte
Der Restore‑Prozess wird durch zwei Skripte realisiert die im Verzeichnis /usr/local/bin/ liegen. Das Skript run_gitea_restore.sh wird vom Administrator manuell ausgeführt. Es listet die maximal drei zuletzt erstellten Sicherungen auf, aus denen der Administrator die gewünschte Wiederherstellungsversion auswählt.
Anschließend ruft run_gitea_restore.sh das Skript gitea_restore.sh mit den entsprechenden Parametern auf. Dieses stellt daraufhin die Konfiguration, die Daten sowie die Datenbank vollständig aus dem gewählten Backup wieder her.
Das Skript run_gitea_restore.sh, welches vom Administrator aufgerufen wird.
#!/bin/bash BACKUP_BASE="/mnt/backupUSB/backup/gitea" SCRIPT="/usr/local/bin/gitea_restore.sh" # Sicherungsverzeichnisse (max. 3) mapfile -t BACKUPS < <(find "$BACKUP_BASE" -maxdepth 1 -mindepth 1 -type d | sort | head -n 3) if [ ${#BACKUPS[@]} -eq 0 ]; then echo "Keine Sicherungsstände gefunden." exit 1 fi echo "Verfügbare Sicherungsstände:" i=1 for b in "${BACKUPS[@]}"; do echo " $i) $(basename "$b")" ((i++)) done read -p "Bitte Sicherungsstand wählen (1-${#BACKUPS[@]}): " CHOICE if ! [[ "$CHOICE" =~ ^[1-3]$ ]] || [ "$CHOICE" -gt ${#BACKUPS[@]} ]; then echo "Ungültige Auswahl." exit 1 fi SELECTED="${BACKUPS[$((CHOICE-1))]}" BASENAME="$(basename "$SELECTED")" CONFIG_FILE="$SELECTED/gitea_config_${BASENAME}.tar.gz" DATA_FILE="$SELECTED/gitea_data_${BASENAME}.tar.gz" DB_FILE="$SELECTED/gitea_db_${BASENAME}.sql" echo "Starte Restore mit:" echo " CONFIG: $CONFIG_FILE" echo " DATA: $DATA_FILE" echo " DB: $DB_FILE" echo "$SCRIPT" "$CONFIG_FILE" "$DATA_FILE" "$DB_FILE" EXIT_CODE=$? if [ $EXIT_CODE -eq 0 ]; then echo "Restore erfolgreich." else echo "Restore fehlgeschlagen mit Exit-Code $EXIT_CODE." fi
Das Skript gitea_restore.sh, welches vom Skript run_gitea_restore.sh aufgerufen wird.
#!/bin/bash # Überprüfen, ob alle erforderlichen Parameter übergeben wurden if [ "$#" -ne 3 ]; then echo "Usage: $0 <config_backup_file> <data_backup_file> <db_backup_file>" exit 1 fi # Parameter zuweisen CONFIG_BACKUP_FILE=$1 DATA_BACKUP_FILE=$2 DB_BACKUP_FILE=$3 # Verzeichnisse und Datenbank-Details CONFIG_DIR="/etc/gitea" DATA_DIR="/mnt/dataSSD/gitea/data" DB_NAME="gitea" DB_USER="gitea" DB_PASS="7vY6qeiN4LF9YN8A4gKA" # Sicherstellen, dass die Backup-Dateien existieren if [ ! -f "$CONFIG_BACKUP_FILE" ]; then echo "Konfigurations-Backup-Datei nicht gefunden: $CONFIG_BACKUP_FILE" exit 1 fi if [ ! -f "$DATA_BACKUP_FILE" ]; then echo "Daten-Backup-Datei nicht gefunden: $DATA_BACKUP_FILE" exit 1 fi if [ ! -f "$DB_BACKUP_FILE" ]; then echo "Datenbank-Backup-Datei nicht gefunden: $DB_BACKUP_FILE" exit 1 fi # Gitea stoppen systemctl stop gitea # Konfiguration zurückspielen tar -xzf $CONFIG_BACKUP_FILE -C $CONFIG_DIR # Daten zurückspielen tar -xzf $DATA_BACKUP_FILE -C $DATA_DIR # Datenbank zurückspielen mysql -u $DB_USER -p$DB_PASS $DB_NAME < $DB_BACKUP_FILE # Gitea starten systemctl start gitea echo "Backup erfolgreich zurückgespielt." exit 0
server/gitea/restore/scripte/start.txt · Zuletzt geändert: von 192.164.3.17
