Files
cloudpanel-backup/backup.sh

74 lines
1.8 KiB
Bash

#!/bin/bash
# Ottieni la directory dello script
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_DIR="/tmp/cloudpanel-backup-log"
LOG_FILE="$LOG_DIR/backup_siti.log"
BACKUP_SCRIPT="$SCRIPT_DIR/core.sh"
# Crea la directory dei log se non esiste
mkdir -p "$LOG_DIR"
# Cancella il log precedente
: > "$LOG_FILE"
exec > >(tee -a "$LOG_FILE") 2>&1
echo "=========================================="
echo "Backup Siti"
echo "Data: $(date '+%d-%m-%Y %H:%M:%S')"
echo "=========================================="
echo ""
# Scopri automaticamente i siti dai file .secret.*
TOTAL=0
SUCCESS=0
FAILED=0
for SECRET_FILE in "$SCRIPT_DIR"/.secret.*; do
# Ignora il file example
[ "$(basename "$SECRET_FILE")" = ".secret.example" ] && continue
[ ! -f "$SECRET_FILE" ] && continue
# Estrai lo username dal nome del file (.secret.USERNAME)
USER=$(basename "$SECRET_FILE" | sed 's/^\.secret\.//')
# Leggi il DOMAIN dal file
DOMAIN=$(grep -m1 '^DOMAIN=' "$SECRET_FILE" | cut -d'=' -f2-)
if [ -z "$DOMAIN" ]; then
echo "⚠️ DOMAIN mancante in $SECRET_FILE, saltato"
FAILED=$((FAILED + 1))
TOTAL=$((TOTAL + 1))
echo ""
continue
fi
TOTAL=$((TOTAL + 1))
echo "→ Backup $DOMAIN (utente: $USER)"
"$BACKUP_SCRIPT" "$USER" "$DOMAIN"
EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
echo "❌ ERRORE backup $DOMAIN (exit code $EXIT_CODE)"
FAILED=$((FAILED + 1))
else
echo "✅ Backup completato $DOMAIN"
SUCCESS=$((SUCCESS + 1))
fi
echo ""
done
if [ $TOTAL -eq 0 ]; then
echo "Nessun file .secret.* trovato in $SCRIPT_DIR"
echo "Esegui ./init.sh per configurare un sito"
fi
echo "=========================================="
echo "Backup terminato"
echo "Totale: $TOTAL | Riusciti: $SUCCESS | Falliti: $FAILED"
echo "=========================================="