PostgreSQL dumpen onder Linux

Uit EekBoek
Naar navigatie springenNaar zoeken springen

Onderstaande scriptje gebruik ik 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 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 scriptje 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