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