Dumppgsql.sh : Différence entre versions
De wikiGite
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