++
This commit is contained in:
42
core.sh
42
core.sh
@@ -22,6 +22,9 @@ GOTIFY_TOKEN="ABnq7pJSSPrFRjx"
|
||||
# Upload HTTP endpoint
|
||||
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
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
SECRET_FILE="$SCRIPT_DIR/.secret.$USER"
|
||||
@@ -179,24 +182,45 @@ echo "File: $ZIP_FILE"
|
||||
echo "Dimensione: $BACKUP_SIZE"
|
||||
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
|
||||
transfer_to_remote "$ZIP_FILE"
|
||||
TRANSFER_STATUS=$?
|
||||
|
||||
# Se il trasferimento è riuscito, rimuovi il file locale
|
||||
# Gestione copie locali in base a LOCAL_RETENTION
|
||||
if [ $TRANSFER_STATUS -eq 0 ]; then
|
||||
echo "Rimozione file locale..."
|
||||
rm -f "$ZIP_FILE"
|
||||
echo "File zip rimosso dal locale, disponibile solo sul server remoto"
|
||||
if [ "$LOCAL_RETENTION" -le 0 ]; then
|
||||
echo "Rimozione file locale..."
|
||||
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
|
||||
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..."
|
||||
find "$SCRIPT_DIR" -name "backup_${DOMAIN}_*.zip" -type f ! -name "backup_${DOMAIN}_$TIMESTAMP.zip" -delete
|
||||
echo "Mantenuta solo l'ultima copia locale"
|
||||
cleanup_local_backups "$(( LOCAL_RETENTION > 0 ? LOCAL_RETENTION : 1 ))"
|
||||
echo "Mantenute copie locali (server remoto non disponibile)"
|
||||
else
|
||||
# Errore durante il trasferimento - mantieni solo l'ultima copia locale
|
||||
# Errore durante il trasferimento - mantieni copie locali
|
||||
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
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user