Add system parameter + fix

This commit is contained in:
2025-12-18 15:52:40 +01:00
parent f1d6a102da
commit 60500e6bc4

View File

@@ -2,17 +2,18 @@
# Script di backup per database MySQL e cartella htdocs # Script di backup per database MySQL e cartella htdocs
# Le credenziali del database devono essere nel file .secret # Le credenziali del database devono essere nel file .secret
# Uso: ./backup.sh dominio # Uso: ./backup.sh user dominio
# Verifica parametro dominio # Verifica parametri user e dominio
if [ -z "$1" ]; then if [ -z "$1" ] || [ -z "$2" ]; then
echo "Errore: Specificare il dominio come parametro" echo "Errore: Specificare user e dominio come parametri"
echo "Uso: $0 dominio" echo "Uso: $0 user dominio"
echo "Esempio: $0 esempio.com" echo "Esempio: $0 utente esempio.com"
exit 1 exit 1
fi fi
DOMAIN="$1" USER="$1"
DOMAIN="$2"
# 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)"
@@ -69,7 +70,7 @@ transfer_to_remote() {
if [ $? -ne 0 ] || [ -z "$SERVER_CHECK" ]; then if [ $? -ne 0 ] || [ -z "$SERVER_CHECK" ]; then
echo "⚠️ Server remoto non raggiungibile" echo "⚠️ Server remoto non raggiungibile"
send_gotify_notification "⚠️ Backup Locale" "Data: $DATE_FORMAT\nBackup di $DOMAIN completato\nServer remoto non disponibile\nFile mantenuto in locale: backup_${DOMAIN}_$TIMESTAMP.zip" 6 send_gotify_notification "⚠️ [ $DOMAIN ] Backup Locale" "Data: $DATE_FORMAT\nBackup di $DOMAIN completato\nServer remoto non disponibile\nFile mantenuto in locale: backup_${DOMAIN}_$TIMESTAMP.zip" 6
return 2 return 2
fi fi
@@ -83,7 +84,7 @@ transfer_to_remote() {
echo "" echo ""
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Errore durante il trasferimento del backup" echo "Errore durante il trasferimento del backup"
send_gotify_notification "⚠️ Backup Parziale" "Data: $DATE_FORMAT\nBackup di $DOMAIN completato ma trasferimento remoto fallito" 6 send_gotify_notification "⚠️ [ $DOMAIN ] Backup Parziale" "Data: $DATE_FORMAT\nBackup di $DOMAIN completato ma trasferimento remoto fallito" 6
return 1 return 1
fi fi
@@ -95,7 +96,7 @@ transfer_to_remote() {
else else
echo "Errore: Risposta server non valida" echo "Errore: Risposta server non valida"
echo "Risposta: $RESPONSE" echo "Risposta: $RESPONSE"
send_gotify_notification "⚠️ Backup Parziale" "Data: $DATE_FORMAT\nBackup di $DOMAIN completato ma upload fallito" 6 send_gotify_notification "⚠️ [ $DOMAIN ] Backup Parziale" "Data: $DATE_FORMAT\nBackup di $DOMAIN completato ma upload fallito" 6
return 1 return 1
fi fi
} }
@@ -104,7 +105,7 @@ transfer_to_remote() {
TIMESTAMP=$(date +"%Y%m%d_%H%M%S") TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
DATE_FORMAT=$(date +"%d/%m/%Y") DATE_FORMAT=$(date +"%d/%m/%Y")
BACKUP_DIR="$SCRIPT_DIR/backup_${DOMAIN}_$TIMESTAMP" BACKUP_DIR="$SCRIPT_DIR/backup_${DOMAIN}_$TIMESTAMP"
SITE_DIR="/home/$(whoami)/htdocs/${DOMAIN}" SITE_DIR="/home/${USER}/htdocs/${DOMAIN}"
DB_DUMP_FILE="$BACKUP_DIR/database_$TIMESTAMP.sql" DB_DUMP_FILE="$BACKUP_DIR/database_$TIMESTAMP.sql"
ZIP_FILE="$SCRIPT_DIR/backup_${DOMAIN}_$TIMESTAMP.zip" ZIP_FILE="$SCRIPT_DIR/backup_${DOMAIN}_$TIMESTAMP.zip"
@@ -118,7 +119,7 @@ mysqldump --no-tablespaces -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" >
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Errore durante il dump del database" echo "Errore durante il dump del database"
send_gotify_notification " Backup Fallito" "Data: $DATE_FORMAT\nErrore durante il dump del database $DB_NAME per $DOMAIN" 8 send_gotify_notification "❌ [ $DOMAIN ] Backup Fallito" "Data: $DATE_FORMAT\nErrore durante il dump del database $DB_NAME per $DOMAIN" 8
rm -rf "$BACKUP_DIR" rm -rf "$BACKUP_DIR"
exit 1 exit 1
fi fi
@@ -136,7 +137,7 @@ else
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Errore durante la copia della cartella del sito" echo "Errore durante la copia della cartella del sito"
send_gotify_notification " Backup Fallito" "Data: $DATE_FORMAT\nErrore durante la copia della cartella $SITE_DIR" 8 send_gotify_notification "❌ [ $DOMAIN ] Backup Fallito" "Data: $DATE_FORMAT\nErrore durante la copia della cartella $SITE_DIR" 8
rm -rf "$BACKUP_DIR" rm -rf "$BACKUP_DIR"
exit 1 exit 1
fi fi
@@ -151,7 +152,7 @@ zip -r "$ZIP_FILE" "backup_${DOMAIN}_$TIMESTAMP"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Errore durante la creazione dell'archivio zip" echo "Errore durante la creazione dell'archivio zip"
send_gotify_notification " Backup Fallito" "Data: $DATE_FORMAT\nErrore durante la creazione dell'archivio zip per $DOMAIN" 8 send_gotify_notification "❌ [ $DOMAIN ] Backup Fallito" "Data: $DATE_FORMAT\nErrore durante la creazione dell'archivio zip per $DOMAIN" 8
rm -rf "$BACKUP_DIR" rm -rf "$BACKUP_DIR"
exit 1 exit 1
fi fi
@@ -180,7 +181,7 @@ if [ $TRANSFER_STATUS -eq 0 ]; then
echo "Rimozione file locale..." echo "Rimozione file locale..."
rm -f "$ZIP_FILE" rm -f "$ZIP_FILE"
echo "File zip rimosso dal locale, disponibile solo sul server remoto" echo "File zip rimosso dal locale, disponibile solo sul server remoto"
send_gotify_notification " 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 solo l'ultima copia locale
echo "Pulizia backup precedenti..." echo "Pulizia backup precedenti..."