restore-erpnext.sh aktualisiert
This commit is contained in:
+43
-22
@@ -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"
|
||||||
Reference in New Issue
Block a user