Outils personnels

Dumppgsql.sh

De wikiGite

Voir Mise_à_jour_automatique_des_scripts pour la création automatique du script /opt/systools/dumppgsql.sh :

#!/bin/bash
# FSo 2010
# V1.0
# The script and its config file must be placed in /opt/systools directory
# or change line bellow
. /opt/systools/dumppgsql.conf

if [ ! -d $BACKUP_DIR ]
then
    mkdir -p $BACKUP_DIR
fi
cd $BACKUP_DIR
for DB in $BASE
do
    su - postgres -c "vacuumdb -U postgres -d $DB -f -q -z"
    su - postgres -c "pg_dump $DB" > pg_${HOST}_${DB}_${JOUR}.sql
    rm -f pg_${HOST}_${DB}_${JOUR}.sql.gz
    gzip pg_${HOST}_${DB}_${JOUR}.sql
done

Puis créer un fichier de config dumppgsql.conf (ou le télécharger sur avec "wget http://www.systea.net/public/MaJ/dumppgsql.conf")

#!/bin/bash
# FSo 2010
# dumppgsql.sh config file

HOST=<nom du host>
BACKUP_DIR=/home/backup
JOUR=$(date +%w)
# BASE=<nom de la base>
BASE="$(su - postgres -c "psql -l --pset tuples_only" | grep -v ^$ | awk '{print $1}' | grep -v template | grep -v postgres)"
DUMP_OPTS=""

Modifier le host, et commenter/décommenter selon qu'on veut une sauvegarde de une ou quelques bases, ou toutes les bases, et si on veut ajouter des options à pg_dump.

Ne pas oublier un minimum de protection

chmod 600 dumppgsql.conf

Si ça n'a pas déjà été fait (par maj_script.sh par exemple), planifier la sauvegarde par un lien dans /etc/cron.daily

ln -s /opt/systools/dumppgsql.sh /etc/cron.daily/dumppgsql

et la lancer une première fois manuellement

/etc/cron.daily/dumppgsql
ls -l /home/backup