restore-erpnext.sh aktualisiert

This commit is contained in:
2026-06-09 15:49:53 +02:00
parent cc349e8525
commit 1601b8e156
+43 -22
View File
@@ -1,50 +1,71 @@
#!/bin/bash #!/bin/bash
# ============================================= # =============================================
# ERPNext Restore Script (Version 16) # ERPNext Full Restore Script mit S3 Download
# Mit Verschlüsselung + Dateien # Version 16 - Mit Verschlüsselung
# ============================================= # =============================================
# ================== KONFIGURATION ==================
SITE="###" # Hier die Site eintragen (z.B. erp.meinedomain.de) SITE="erp.berchmans.de" # z.B. erp.meine-domain.de
BACKUP_PATH="" # Hier den Ordner mit den Backups angeben (z.B. /home/frappeuser/backups/2025-06-09) S3_BUCKET="dein-bucket-name" # z.B. erpnext-backups
ENCRYPTION_KEY="" # Hier den Encryption Key einfügen BACKUP_FOLDER="" # Leer lassen = neuesten Ordner automatisch nehmen
ENCRYPTION_KEY="" # Dein Encryption Key
AWS_PROFILE="default" # Falls es mehrere AWS-Profile sind
# ===================================================
if [ -z "$BACKUP_PATH" ] || [ -z "$ENCRYPTION_KEY" ]; then if [ -z "$ENCRYPTION_KEY" ]; then
echo "Fehler: BACKUP_PATH und ENCRYPTION_KEY müssen im Script gesetzt werden!" echo "Fehler: ENCRYPTION_KEY muss gesetzt werden!"
exit 1 exit 1
fi fi
echo "=== ERPNext Restore Start ===" echo "=== ERPNext S3 Restore Start ==="
echo "Site: $SITE" echo "Site: $SITE"
echo "Backup-Pfad: $BACKUP_PATH" echo "Bucket: $S3_BUCKET"
echo "Startzeit: $(date)" echo "Startzeit: $(date)"
echo "==================================================" echo "=================================================="
cd ~/frappe-bench cd ~/frappe-bench
echo "1. Restore wird durchgeführt..." # 1. Neueste Backup-Version aus S3 herunterladen
echo "1. Lade neuestes Backup aus S3 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)
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 " → Download abgeschlossen."
# 2. Restore durchführen
echo "2. Restore wird durchgeführt..."
bench --site $SITE restore \ bench --site $SITE restore \
$BACKUP_PATH/database.sql.gz \ $LOCAL_BACKUP_DIR/database.sql.gz \
--with-public-files $BACKUP_PATH/files.tar \ --with-public-files $LOCAL_BACKUP_DIR/files.tar \
--with-private-files $BACKUP_PATH/private-files.tar \ --with-private-files $LOCAL_BACKUP_DIR/private-files.tar \
--encryption-key "$ENCRYPTION_KEY" \ --encryption-key "$ENCRYPTION_KEY" \
--force --force
echo "2. Migration ausführen..." # 3. Nacharbeiten
echo "3. Migration, Cache und Restart..."
bench --site $SITE migrate bench --site $SITE migrate
echo "3. Cache leeren und Assets bauen..."
bench --site $SITE clear-cache bench --site $SITE clear-cache
bench build bench build
echo "4. Bench neustarten..."
bench restart bench restart
echo "==================================================" echo "=================================================="
echo "Restore erfolgreich abgeschlossen!" echo "Restore mit S3-Download erfolgreich abgeschlossen!"
echo "Endzeit: $(date)" echo "Endzeit: $(date)"
echo "" echo ""
echo "Nächste Schritte:" echo "Nächste Schritte:"
echo "- E-Mail-Konto neu einrichten" echo "- E-Mail-Konto prüfen und neu einrichten"
echo "- Google Drive / S3 Autorisierung neu machen" echo "- Google Drive Autorisierung erneuern"
echo "- Scheduler aktivieren: bench --site $SITE enable-scheduler" echo "- Scheduler aktivieren"