Add system parameter + fix
This commit is contained in:
31
backup.sh
31
backup.sh
@@ -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..."
|
||||||
|
|||||||
Reference in New Issue
Block a user