N'étant pas du tout expert postgresql, j'ai quand même fait un script de backup également :
#!/bin/sh
#
# Script pour faire le backup des bases
# de données PostgreSQL
# Exécuté par /etc/crontab
#
#
backup_dir=/mnt/backup-pgsql
backup_dir_pgsql=${backup_dir}/pgsql
backup_tmp=${backup_dir}/tmp
backup_tmp_pgsql=${backup_tmp}/pgsql
dbnames=`psql -U postgres -q -t -A -d template1 -c "SELECT datname FROM pg_datab
ase WHERE datname != 'template0'"`
for db in ${dbnames}; do
echo -n " $db"
file=${backup_tmp_pgsql}/pgsql-${db}-$date-$host.Fc
pg_dump -U postgres -F c -d $db -f ${file}
done
# Création de l'archive Tar/gzip data et
# déplacement vers le répertoire des backups
tar czf ${backup_tmp}/pgsql-$date-$host.tar.gz -C ${backup_tmp}/ pgsql/
mv ${backup_tmp}/pgsql-$date-$host.tar.gz ${backup_dir_pgsql}/pgsql-$host.tar.gz
[^] # Re: Bof Un autre pour postgresql
Posté par rootix . En réponse au journal Restauration et sauvegarde MySQL. Évalué à 2.
#!/bin/sh
#
# Script pour faire le backup des bases
# de données PostgreSQL
# Exécuté par /etc/crontab
#
#
backup_dir=/mnt/backup-pgsql
backup_dir_pgsql=${backup_dir}/pgsql
backup_tmp=${backup_dir}/tmp
backup_tmp_pgsql=${backup_tmp}/pgsql
# répertoire de backup monté ?
monte=`mount | grep backup-pgsql | grep -v grep`
if [ "${monte}" != "" ]; then
mkdir -p ${backup_dir} && chmod 0700 ${backup_dir}
mkdir -p ${backup_dir_pgsql} && chmod 0700 ${backup_dir_pgsql}
mkdir -p ${backup_tmp} && chmod 0700 ${backup_tmp}
mkdir -p ${backup_tmp_pgsql} && chmod 0700 ${backup_tmp_pgsql}
date=`date -I`
host=`hostname -s`
# Détermine la liste des bases et les copie
dbnames=`psql -U postgres -q -t -A -d template1 -c "SELECT datname FROM pg_datab
ase WHERE datname != 'template0'"`
for db in ${dbnames}; do
echo -n " $db"
file=${backup_tmp_pgsql}/pgsql-${db}-$date-$host.Fc
pg_dump -U postgres -F c -d $db -f ${file}
done
# Création de l'archive Tar/gzip data et
# déplacement vers le répertoire des backups
tar czf ${backup_tmp}/pgsql-$date-$host.tar.gz -C ${backup_tmp}/ pgsql/
mv ${backup_tmp}/pgsql-$date-$host.tar.gz ${backup_dir_pgsql}/pgsql-$host.tar.gz
# Efface les fichiers temporaires
rm -f ${backup_tmp}/pgsql/*.sql
fi