++
This commit is contained in:
42
core.sh
42
core.sh
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user