This commit is contained in:
francesco
2026-04-28 14:38:38 +02:00
parent 2b51d7882c
commit 6ac3f069f0

42
core.sh
View File

@@ -22,6 +22,9 @@ GOTIFY_TOKEN="ABnq7pJSSPrFRjx"
# Upload HTTP endpoint # Upload HTTP endpoint
UPLOAD_URL="http://192.168.0.10:8080/upload" UPLOAD_URL="http://192.168.0.10:8080/upload"
# Numero di copie locali da mantenere (0 = elimina dopo upload riuscito)
LOCAL_RETENTION=0
# Ottieni la directory dello script # Ottieni la directory dello script
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SECRET_FILE="$SCRIPT_DIR/.secret.$USER" SECRET_FILE="$SCRIPT_DIR/.secret.$USER"
@@ -179,24 +182,45 @@ echo "File: $ZIP_FILE"
echo "Dimensione: $BACKUP_SIZE" echo "Dimensione: $BACKUP_SIZE"
echo "==========================================" echo "=========================================="
# Funzione per mantenere solo le ultime N copie locali
cleanup_local_backups() {
local keep=$1
if [ "$keep" -le 0 ]; then
# Rimuovi tutti i backup locali di questo dominio
find "$SCRIPT_DIR" -name "backup_${DOMAIN}_*.zip" -type f -delete
else
# Mantieni solo le ultime N copie
local count
count=$(find "$SCRIPT_DIR" -name "backup_${DOMAIN}_*.zip" -type f | wc -l)
if [ "$count" -gt "$keep" ]; then
find "$SCRIPT_DIR" -name "backup_${DOMAIN}_*.zip" -type f | sort | head -n -"$keep" | xargs rm -f
fi
fi
}
# Trasferisci il backup su server remoto # Trasferisci il backup su server remoto
transfer_to_remote "$ZIP_FILE" transfer_to_remote "$ZIP_FILE"
TRANSFER_STATUS=$? TRANSFER_STATUS=$?
# Se il trasferimento è riuscito, rimuovi il file locale # Gestione copie locali in base a LOCAL_RETENTION
if [ $TRANSFER_STATUS -eq 0 ]; then if [ $TRANSFER_STATUS -eq 0 ]; then
echo "Rimozione file locale..." if [ "$LOCAL_RETENTION" -le 0 ]; then
rm -f "$ZIP_FILE" echo "Rimozione file locale..."
echo "File zip rimosso dal locale, disponibile solo sul server remoto" rm -f "$ZIP_FILE"
echo "File zip rimosso dal locale, disponibile solo sul server remoto"
else
echo "Mantenimento ultime $LOCAL_RETENTION copie locali..."
cleanup_local_backups "$LOCAL_RETENTION"
fi
send_gotify_notification "✅ [ $DOMAIN ] Backup Completato" "Data: $DATE_FORMAT\nBackup di $DOMAIN completato con successo\nFile: backup_${DOMAIN}_$TIMESTAMP.zip\nDimensione: $BACKUP_SIZE\nCaricato sul server remoto" 5 send_gotify_notification "✅ [ $DOMAIN ] Backup Completato" "Data: $DATE_FORMAT\nBackup di $DOMAIN completato con successo\nFile: backup_${DOMAIN}_$TIMESTAMP.zip\nDimensione: $BACKUP_SIZE\nCaricato sul server remoto" 5
elif [ $TRANSFER_STATUS -eq 2 ]; then elif [ $TRANSFER_STATUS -eq 2 ]; then
# Server non disponibile - mantieni solo l'ultima copia locale # Server non disponibile - mantieni copie locali
echo "Pulizia backup precedenti..." echo "Pulizia backup precedenti..."
find "$SCRIPT_DIR" -name "backup_${DOMAIN}_*.zip" -type f ! -name "backup_${DOMAIN}_$TIMESTAMP.zip" -delete cleanup_local_backups "$(( LOCAL_RETENTION > 0 ? LOCAL_RETENTION : 1 ))"
echo "Mantenuta solo l'ultima copia locale" echo "Mantenute copie locali (server remoto non disponibile)"
else else
# Errore durante il trasferimento - mantieni solo l'ultima copia locale # Errore durante il trasferimento - mantieni copie locali
echo "Pulizia backup precedenti..." echo "Pulizia backup precedenti..."
find "$SCRIPT_DIR" -name "backup_${DOMAIN}_*.zip" -type f ! -name "backup_${DOMAIN}_$TIMESTAMP.zip" -delete cleanup_local_backups "$(( LOCAL_RETENTION > 0 ? LOCAL_RETENTION : 1 ))"
send_gotify_notification "⚠️ Backup Parziale" "Data: $DATE_FORMAT\nBackup di $DOMAIN completato localmente\nFile: backup_${DOMAIN}_$TIMESTAMP.zip\nDimensione: $BACKUP_SIZE\nTrasferimento remoto fallito - File mantenuto in locale" 6 send_gotify_notification "⚠️ Backup Parziale" "Data: $DATE_FORMAT\nBackup di $DOMAIN completato localmente\nFile: backup_${DOMAIN}_$TIMESTAMP.zip\nDimensione: $BACKUP_SIZE\nTrasferimento remoto fallito - File mantenuto in locale" 6
fi fi