From 60500e6bc4dbf97e0e51634aac19eef3be2f363d Mon Sep 17 00:00:00 2001 From: Francesco Picone Date: Thu, 18 Dec 2025 15:52:40 +0100 Subject: [PATCH] Add system parameter + fix --- backup.sh | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/backup.sh b/backup.sh index 617f3ba..2007b35 100644 --- a/backup.sh +++ b/backup.sh @@ -2,17 +2,18 @@ # Script di backup per database MySQL e cartella htdocs # Le credenziali del database devono essere nel file .secret -# Uso: ./backup.sh dominio +# Uso: ./backup.sh user dominio -# Verifica parametro dominio -if [ -z "$1" ]; then - echo "Errore: Specificare il dominio come parametro" - echo "Uso: $0 dominio" - echo "Esempio: $0 esempio.com" +# Verifica parametri user e dominio +if [ -z "$1" ] || [ -z "$2" ]; then + echo "Errore: Specificare user e dominio come parametri" + echo "Uso: $0 user dominio" + echo "Esempio: $0 utente esempio.com" exit 1 fi -DOMAIN="$1" +USER="$1" +DOMAIN="$2" # Ottieni la directory dello script SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" @@ -69,7 +70,7 @@ transfer_to_remote() { if [ $? -ne 0 ] || [ -z "$SERVER_CHECK" ]; then 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 fi @@ -83,7 +84,7 @@ transfer_to_remote() { echo "" if [ $? -ne 0 ]; then 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 fi @@ -95,7 +96,7 @@ transfer_to_remote() { else echo "Errore: Risposta server non valida" 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 fi } @@ -104,7 +105,7 @@ transfer_to_remote() { TIMESTAMP=$(date +"%Y%m%d_%H%M%S") DATE_FORMAT=$(date +"%d/%m/%Y") 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" 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 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" exit 1 fi @@ -136,7 +137,7 @@ else if [ $? -ne 0 ]; then 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" exit 1 fi @@ -151,7 +152,7 @@ zip -r "$ZIP_FILE" "backup_${DOMAIN}_$TIMESTAMP" if [ $? -ne 0 ]; then 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" exit 1 fi @@ -180,7 +181,7 @@ 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" - 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 # Server non disponibile - mantieni solo l'ultima copia locale echo "Pulizia backup precedenti..."