Manuale per lo Script di Backup di Database MS SQL Server Introduzione Questo script, denominato mssql-backup.sh, è progettato per eseguire il backup di database MS SQL Server. Lo script supporta sia backup locali che caricamenti su un server FTP, oltre a inviare notifiche via email riguardo allo stato del processo di backup. Requisiti Prima di eseguire lo script, assicurati di avere i seguenti requisiti: Un sistema operativo basato su Linux con accesso a MS SQL Server. Installazione dei pacchetti ftp e msmtp (il comando per l'installazione è incluso nello script). Configurazione di un file di configurazione esterno (mssqlconfig.env) contenente le credenziali necessarie. Configurazione File di Configurazione: Crea un file chiamato mssqlconfig.env nella directory /zucchetti/backupdb/ con le seguenti variabili: # SQL Server Configuration USER="sa" PASSWORD="DBP0l01nf0.." HOST="localhost" BACKUP_DIR="/zucchetti/backupdb/bkfiles" SQLCMD="/opt/mssql-tools18/bin/sqlcmd" SERVER_NAME="DBSQL01" # Identificativo del server fisico TRUST_CERTIFICATE=1 # 1 per accettare certificati autofirmati, 0 per richiederli validi # Retention Configuration RETENTION=1 # Retention per i backup locali in giorni REMOTE_RETENTION=2 # Retention per i backup remoti in giorni # Log Configuration LOG_FILE="/zucchetti/backupdb/backup_log.txt" ERROR_LOG_FILE="/zucchetti/backupdb/backup_err.txt" # FTP Configuration FTP_SERVER="terni.poloinformatico.it" FTP_USER="backupmssqldb" FTP_PASSWORD="!Li'D/i%2&*QkvK!" REMOTE_DIR="/BackupDB" # SMTP Configuration SMTP_SERVER="smtp://relay.poloinformatico.it:587" SMTP_USER="brass@relay.poloinformatico.it" SMTP_PASS="DMKqP9vUYn8s" # Modalità Backup DO_LOCAL_BACKUP=1 # 1 per eseguire il backup locale, 0 per disabilitarlo DO_FTP_BACKUP=1 # 1 per eseguire il backup FTP, 0 per disabilitarlo 1. Variabili di Configurazione: Lo script utilizza le seguenti variabili di configurazione (alcune possono essere sovrascritte nel file `mssqlconfig.env`): - `BACKUP_DIR`: Directory per il backup locale. - `SQLCMD`: Percorso per il comando `sqlcmd`. - `HOST`: Indirizzo del server SQL. - `RETENTION`: Numero di giorni per mantenere i backup locali. - `REMOTE_RETENTION`: Numero di giorni per mantenere i backup remoti. - `SERVER_NAME`: Nome del server fisico. - `LOG_FILE`: File di log per il backup. - `ERROR_LOG_FILE`: File di log per gli errori. - `REMOTE_DIR`: Directory remota sul server FTP. - `DO_LOCAL_BACKUP`: Abilita (1) o disabilita (0) il backup locale. - `DO_FTP_BACKUP`: Abilita (1) o disabilita (0) il backup FTP. - `TRUST_CERTIFICATE`: Accetta certificati autofirmati (1) o richiedi certificati validi (0). Permessi di Esecuzione: Assicurati che lo script abbia i permessi di esecuzione. Puoi farlo eseguendo: chmod +x mssql-backup.sh Esecuzione: Avvia lo script con il seguente comando per effettuare il backup di tutti i databases presenti nel server: ./mssql-backup.sh Esecuzione: Avvia lo script con il seguente comando per effettuare il backup di un solo database presente nel server: ./mssql-backup.sh nomedb Funzionalità dello Script Backup Locale: Se abilitato, lo script creerà una copia di backup locale dei database. Caricamento FTP: Se abilitato, lo script caricherà i backup sul server FTP specificato. Notifiche Email: Al termine del processo di backup, lo script invierà un'email con lo stato del backup e eventuali errori. Log e Errori Lo stato del processo di backup verrà registrato nel file di log specificato da LOG_FILE. Gli errori verranno registrati nel file di log specificato da ERROR_LOG_FILE. Conclusione Questo script fornisce un metodo automatizzato per gestire il backup dei database MS SQL Server. Assicurati di testare lo script in un ambiente di sviluppo prima di utilizzarlo in produzione e di controllare regolarmente i log per eventuali problemi.