Manuale per lo Script di Backup di Database Postgres Introduzione Questo script, denominato psql-backup.sh, è progettato per eseguire il backup di database Postgres. 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 (psqlconfig.env) contenente le credenziali necessarie. Configurazione File di Configurazione: Crea un file chiamato psqlconfig.env nella directory /zucchetti/backupdb/ con le seguenti variabili: # POSTGRES Server Configuration USER="postgres" PASSWORD="postgres" HOST="localhost" BACKUP_DIR="/zucchetti/backupdb/bkfiles" PGDUMP="pg_dump" PSQL="psql" PORT="5432" SERVER_NAME="PSQL14" # Identificativo del server fisico COMPRESSION_LEVEL=9 # Livello di compressione (1-9) # 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 2. Le seguenti variabili possono essere configurate direttamente nello script: - `BACKUP_DIR`: Directory per i backup locali (default: `/zucchetti/backupdb/bkfiles`) - `PGDUMP`: Comando per eseguire il dump del database (default: `pg_dump`) - `PSQL`: Comando per interagire con PostgreSQL (default: `psql`) - `HOST`: Host del server PostgreSQL (default: `localhost`) - `PORT`: Porta del server PostgreSQL (default: `5432`) - `RETENTION`: Numero di backup locali da mantenere (default: `1`) - `REMOTE_RETENTION`: Numero di backup remoti da mantenere (default: `2`) - `SERVER_NAME`: Nome identificativo del server fisico (default: `PGDB01`) - `LOG_FILE`: File di log per le operazioni di backup (default: `/zucchetti/backupdb/backup_log.txt`) - `ERROR_LOG_FILE`: File di log per gli errori (default: `/zucchetti/backupdb/backup_err.txt`) - `REMOTE_DIR`: Directory remota su FTP per i backup (default: `/BackupDB`) - `DO_LOCAL_BACKUP`: Abilita/disabilita backup locale (default: `1`) - `DO_FTP_BACKUP`: Abilita/disabilita backup FTP (default: `1`) - `COMPRESSION_LEVEL`: Livello di compressione per il backup (default: `9`) Permessi di Esecuzione: Assicurati che lo script abbia i permessi di esecuzione. Puoi farlo eseguendo: chmod +x psql-backup.sh Esecuzione: Avvia lo script con il seguente comando per effettuare il backup di tutti i databases presenti nel server: ./psql-backup.sh Esecuzione: Avvia lo script con il seguente comando per effettuare il backup di un solo database presente nel server: ./psql-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 Postgres. Assicurati di testare lo script in un ambiente di sviluppo prima di utilizzarlo in produzione e di controllare regolarmente i log per eventuali problemi.