PostgreSQL dumpen onder Linux

Uit EekBoek
Versie door Pvdv (overleg | bijdragen) op 17 jan 2011 om 21:35
Naar navigatie springenNaar zoeken springen

Onderstaande script gebruikik om mijn postgresql databases te dumpen tot bestanden, die weer eenvoudig gebackupped kunnen worden. Ik zet het script in /usr/local/sbin/ en maak het uiteraard uitvoerbaar.

Het script roep ik in de praktijk aan vanuit mijn backupscript, maar uiteraard kan het ook worden aangeroepen vanuit cron, het aanroepen gaat op deze manier:

su postgres -c /usr/local/sbin/postgresqlbackup

Er dient eerste een directory voor de dump te worden aangemaakt, zo:

mkdir /var/postgresqldump
chown postgres /var/postgresqldump 
chmod 700 /var/postgresqldump

Het script zelf:

#!/bin/bash
# /usr/local/sbin/postgresqlbackup
# paul@vandervlis.nl
# scriptje om alle databases op deze machine als apart bestand te dumpen

# DIR voor dump
MDIR="/var/postgresqldump"

if ! test -e $MDIR; then echo "$MDIR bestaat niet"; exit; fi
cd $MDIR

lijst=`psql -ltA|cut -d\| -f1`

for database in $lijst; do
  if ! test $database = "template0"; then
    echo -n $database
    echo -n " "
    pg_dump $database > $database.sql
  fi
done
echo