1 Home
Mattia Tadini edited this page 2024-11-13 13:39:23 +00:00

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
  1. 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) Esecuzione dello Script
  3. Permessi di Esecuzione: Assicurati che lo script abbia i permessi di esecuzione. Puoi farlo eseguendo: chmod +x psql-backup.sh

  4. Esecuzione: Avvia lo script con il seguente comando per effettuare il backup di tutti i databases presenti nel server: ./psql-backup.sh

  5. 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.