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
# 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..."