diff --git a/restore-erpnext.sh b/restore-erpnext.sh index fe99ee5..5fde8ef 100644 --- a/restore-erpnext.sh +++ b/restore-erpnext.sh @@ -1,52 +1,58 @@ #!/bin/bash # ============================================= -# ERPNext Full Restore Script mit S3 Download -# Version 16 - Mit Verschlüsselung +# ERPNext Universal S3 Restore Script +# Funktioniert mit AWS S3 + Timme Hosting + Hetzner + Backblaze etc. # ============================================= # ================== KONFIGURATION ================== +SITE="xxx" # ERPNext Site eintragen +S3_ENDPOINT=" " # Adresse des S3 Servers +S3_BUCKET="der-bucket-name" # Bucket-Name +S3_ACCESS_KEY="" # Access Key +S3_SECRET_KEY="" # Secret Key +S3_REGION="eu-central-1" # Oft "eu-central-1" oder "us-east-1" bei kompatiblen Anbietern -SITE="erp.berchmans.de" # z.B. erp.meine-domain.de -S3_BUCKET="dein-bucket-name" # z.B. erpnext-backups -BACKUP_FOLDER="" # Leer lassen = neuesten Ordner automatisch nehmen -ENCRYPTION_KEY="" # Dein Encryption Key -AWS_PROFILE="default" # Falls es mehrere AWS-Profile sind +BACKUP_FOLDER="" # Leer lassen = neuesten Ordner automatisch +ENCRYPTION_KEY="" # Dein Backup Encryption Key # =================================================== -if [ -z "$ENCRYPTION_KEY" ]; then - echo "Fehler: ENCRYPTION_KEY muss gesetzt werden!" +if [ -z "$ENCRYPTION_KEY" ] || [ -z "$S3_ACCESS_KEY" ] || [ -z "$S3_SECRET_KEY" ]; then + echo "Fehler: ENCRYPTION_KEY, S3_ACCESS_KEY und S3_SECRET_KEY müssen gesetzt werden!" exit 1 fi -echo "=== ERPNext S3 Restore Start ===" +echo "=== ERPNext Universal S3 Restore Start ===" echo "Site: $SITE" +echo "Endpoint: $S3_ENDPOINT" echo "Bucket: $S3_BUCKET" echo "Startzeit: $(date)" echo "==================================================" cd ~/frappe-bench -# 1. Neueste Backup-Version aus S3 herunterladen -echo "1. Lade neuestes Backup aus S3 herunter..." +# 1. Neueste Backup-Version herunterladen +echo "1. Lade neuestes Backup herunter..." if [ -z "$BACKUP_FOLDER" ]; then - echo " → Automatisch neuesten Backup-Ordner suchen..." - LATEST=$(aws s3 ls s3://$S3_BUCKET/ --recursive | sort | tail -1 | awk '{print $4}' | xargs dirname) + echo " → Suche neuesten Backup-Ordner..." + LATEST=$(aws s3 ls s3://$S3_BUCKET/ --recursive --endpoint-url $S3_ENDPOINT | sort | tail -1 | awk '{print $4}' | xargs dirname) BACKUP_FOLDER="s3://$S3_BUCKET/$LATEST" fi -# Lokalen Backup-Ordner erstellen LOCAL_BACKUP_DIR=~/backups/$(date +%Y-%m-%d)_s3_restore mkdir -p $LOCAL_BACKUP_DIR -echo " → Lade Backup herunter nach: $LOCAL_BACKUP_DIR" -aws s3 cp $BACKUP_FOLDER/ $LOCAL_BACKUP_DIR/ --recursive --profile $AWS_PROFILE +echo " → Lade herunter nach: $LOCAL_BACKUP_DIR" + +aws s3 cp $BACKUP_FOLDER/ $LOCAL_BACKUP_DIR/ --recursive \ + --endpoint-url $S3_ENDPOINT \ + --aws-access-key-id $S3_ACCESS_KEY \ + --aws-secret-access-key $S3_SECRET_KEY echo " → Download abgeschlossen." # 2. Restore durchführen echo "2. Restore wird durchgeführt..." - bench --site $SITE restore \ $LOCAL_BACKUP_DIR/database.sql.gz \ --with-public-files $LOCAL_BACKUP_DIR/files.tar \ @@ -62,10 +68,5 @@ bench build bench restart echo "==================================================" -echo "Restore mit S3-Download erfolgreich abgeschlossen!" -echo "Endzeit: $(date)" -echo "" -echo "Nächste Schritte:" -echo "- E-Mail-Konto prüfen und neu einrichten" -echo "- Google Drive Autorisierung erneuern" -echo "- Scheduler aktivieren" \ No newline at end of file +echo "Restore erfolgreich abgeschlossen!" +echo "Endzeit: $(date)" \ No newline at end of file