vi /root/psqlbackup.sh
et y copier coller le code suivant :
#!/bin/bash
# Par David H. 05.03.2012
OUTPUTDIR="/var/lib/postgresql/backups/"
PG_DUMP="$(which pg_dump)"
PSQL="$(which psql)"
GZIP="$(which gzip)"
NOW="$(date +"%H00.%F")"
[ ! -d $OUTPUTDIR ] && mkdir -p $OUTPUTDIR || :
find $OUTPUTDIR -type f -mtime +7 -exec rm {} \;
DATABASES=$(psql -Atc "select d.datname as name from pg_catalog.pg_database d;" | grep -v 'template0')
for db in $DATABASES
do
#echo $db
$PG_DUMP -Ft -b $db > $OUTPUTDIR$db.$NOW.tar
done
Pourquoi rajouter l'instruction "grep -v 'template0'" ?
Les fichiers de sauvegarde produits par pg_dump sont relatifs à template0. Par conséquent le système retourne l'erreur suivante :
FATAL 1: Database "template0" is not currently accepting connections
N'oublie pas que comme d'hab tu dois rendre ton script executable pour pouvoir l'exploiter
sudo chown root:root /root/psqlbackup.sh
sudo chmod 755 /root/psqlbackup.sh
Tu peux retrouver un script similaire relatif à la sauvegarde des bases MySQL a l'adresse suivante :
http://ubuntout.blogspot.com/2010/12/comment-sauvegarder-tes-bases-mysql.html
Pour restaurer la base ainsi sauvegardée, il suffit de taper la commande suivante :
pg_restore -d nom_de_base /chemin/vers/la/base_archivee.tar
Aucun commentaire:
Enregistrer un commentaire