restore-erpnext.sh aktualisiert

This commit is contained in:
2026-06-09 16:42:54 +02:00
parent 517dd4f4e7
commit 7fc23c2847
+25 -16
View File
@@ -2,21 +2,20 @@
# ============================================= # =============================================
# ERPNext Universal S3 Restore Script # ERPNext Universal S3 Restore Script
# Für Timme Hosting, Hetzner, AWS etc. # Für Timme Hosting, Hetzner, Backblaze etc.
# ============================================= # =============================================
# ================== KONFIGURATION ================== # ================== KONFIGURATION ==================
SITE="xxx" # Sitename SITE="erp.berchmans.de" # Kann als Parameter übergeben werden
S3_ENDPOINT=" " # Serveradresse (mit https://) S3_ENDPOINT="https://s3.timmehosting.de" # ← Bei Timme Hosting
S3_BUCKET="bucket-name" # Bucket S3_BUCKET="dein-bucket-name" # ← Dein Bucket-Name
S3_ACCESS_KEY="" # Access Key S3_ACCESS_KEY="" # ← Dein Access Key
S3_SECRET_KEY="" # Secret Key S3_SECRET_KEY="" # ← Dein Secret Key
S3_REGION="eu-central-1"
ENCRYPTION_KEY="" # Encryption Key ENCRYPTION_KEY="" # ← Dein Encryption Key
# =================================================== # ===================================================
# SITE kann als Parameter übergeben werden # SITE als Parameter möglich
if [ "$1" != "" ]; then if [ "$1" != "" ]; then
SITE="$1" SITE="$1"
fi fi
@@ -33,7 +32,7 @@ echo "Bucket: $S3_BUCKET"
echo "Startzeit: $(date)" echo "Startzeit: $(date)"
echo "==================================================" echo "=================================================="
# AWS CLI prüfen und ggf. installieren # AWS CLI installieren falls fehlt
if ! command -v aws &> /dev/null; then if ! command -v aws &> /dev/null; then
echo "AWS CLI wird installiert..." echo "AWS CLI wird installiert..."
sudo apt update && sudo apt install awscli -y sudo apt update && sudo apt install awscli -y
@@ -41,17 +40,23 @@ fi
cd ~/frappe-bench cd ~/frappe-bench
# 1. Neueste Backup-Dateien suchen und herunterladen # Lokalen Backup-Ordner erstellen
echo "1. Lade neuestes Backup aus S3 herunter..."
LOCAL_BACKUP_DIR=~/backups/$(date +%Y-%m-%d)_s3_restore LOCAL_BACKUP_DIR=~/backups/$(date +%Y-%m-%d)_s3_restore
mkdir -p $LOCAL_BACKUP_DIR mkdir -p $LOCAL_BACKUP_DIR
# Neueste Dateien herunterladen (nach Timestamp sortiert) # 1. Neueste Backup-Dateien herunterladen
echo "1. Lade neuestes Backup aus S3 herunter..."
AWS_CMD="aws s3 cp s3://$S3_BUCKET/ $LOCAL_BACKUP_DIR/ --recursive \
--endpoint-url $S3_ENDPOINT \
--no-sign-request false"
# Credentials per Environment-Variablen (sicherer und stabiler)
export AWS_ACCESS_KEY_ID=$S3_ACCESS_KEY
export AWS_SECRET_ACCESS_KEY=$S3_SECRET_KEY
aws s3 cp s3://$S3_BUCKET/ $LOCAL_BACKUP_DIR/ --recursive \ aws s3 cp s3://$S3_BUCKET/ $LOCAL_BACKUP_DIR/ --recursive \
--endpoint-url $S3_ENDPOINT \ --endpoint-url $S3_ENDPOINT \
--aws-access-key-id $S3_ACCESS_KEY \
--aws-secret-access-key $S3_SECRET_KEY \
--exclude "*" \ --exclude "*" \
--include "*database-enc.sql.gz" \ --include "*database-enc.sql.gz" \
--include "*files-enc.tar" \ --include "*files-enc.tar" \
@@ -59,6 +64,9 @@ aws s3 cp s3://$S3_BUCKET/ $LOCAL_BACKUP_DIR/ --recursive \
echo " → Download abgeschlossen. Dateien in: $LOCAL_BACKUP_DIR" echo " → Download abgeschlossen. Dateien in: $LOCAL_BACKUP_DIR"
# Dateien prüfen
ls -la $LOCAL_BACKUP_DIR
# 2. Restore durchführen # 2. Restore durchführen
echo "2. Restore wird durchgeführt..." echo "2. Restore wird durchgeführt..."
@@ -79,3 +87,4 @@ bench restart
echo "==================================================" echo "=================================================="
echo "Restore erfolgreich abgeschlossen!" echo "Restore erfolgreich abgeschlossen!"
echo "Endzeit: $(date)" echo "Endzeit: $(date)"