Script de sauvegarde postgres:
#!/bin/bash
set -o pipefailLOG= »/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