Dumppgsql.sh : Différence entre versions
De wikiGite
| (Une révision intermédiaire par un autre utilisateur non affichée) | |||
| Ligne 27 : | Ligne 27 : | ||
BACKUP_DIR=/home/backup | BACKUP_DIR=/home/backup | ||
JOUR=$(date +%w) | JOUR=$(date +%w) | ||
| − | BASE=<nom de la base> | + | # 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="" | 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. | 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. | ||
Version actuelle datée du 17 janvier 2011 à 11:13
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
