Dumppgsql.sh
De wikiGite
Révision datée du 17 janvier 2011 à 11:13 par Frank (discussion | contributions)
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