Script de sauvegarde pour postgres et sa sonde Centreon pour superviser sa bonne execution

Script de sauvegarde postgres:

#!/bin/bash
set -o pipefail

LOG= »/var/log/backup_postgres.log »
DATE=$(date ‘+%Y-%m-%d’)
DATE_LOG=$(date ‘+%Y-%m-%d %H:%M:%S’)
FICHIER= »/home/projet/dump/postgres_${DATE}.sql.gz »

# Purge des sauvegardes de plus de 4 jours
find /home/projet/dump -type f -name ‘postgres_*.sql.gz’ -mtime +4 -delete

# Sauvegarde complète compressée
pg_dumpall | gzip > « $FICHIER »
RESULT=$?

# Vérification et écriture dans le log
if [ « $RESULT » -eq 0 ]; then
echo « [$DATE_LOG] Sauvegarde OK » >> « $LOG »
else
echo « [$DATE_LOG] Sauvegarde ÉCHEC (code=$RESULT) » >> « $LOG »
rm -f « $FICHIER »
fi

Sonde Centreon qui vérifie qu’une sauvegarde a bien eu lieu la veille:

#!/bin/bash

LOG= »/var/log/backup_postgres.log »
HIER=$(date -d « yesterday » ‘+%F’)

if grep -q « \[$HIER » « $LOG » && grep « \[$HIER » « $LOG » | grep -q « Sauvegarde OK »; then
echo « OK – Sauvegarde PostgreSQL du $HIER trouvée dans le log »
exit 0
else
echo « CRITICAL – Aucune sauvegarde PostgreSQL OK trouvée pour le $HIER »
exit 2
fi

Derniers Articles