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
ftpemsmtp(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.envnella 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
-
Variabili di Configurazione
-
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) Esecuzione dello Script
-
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.