Folgendes Skript erzeugt ein Backup von den globalen Daten einer Postgres-Installation und ausgewählten Datenbanken. Für die Datenbanken wird das tar-Format von pg_dump verwendet. Das hat den Vorteil, daß beim Wiederherstellen Datenbankobjekte umsortiert und ausgelassen werden können. Das tar-Format hat zusätzlich den Vorteil mit Standard-Tools bearbeitet werden zu können, da die Daten-Dateien im Tab-Delimited-Format gespeichert werden.
#!/bin/sh umask 0077 export PGPASSWORD=`/bin/cat meinepassword-datei` export PGUSER='postgres' db=("db1"db2") # User/Gruppen pg_dumpall --globals-only |/usr/bin/bzip2 > /backup/postgres/global.sql.bz2 rc=$? if (($rc!=0)) then echo "Fehler bei pg_dumpall"; fi; for i in ${db[@]} do /usr/bin/pg_dump -Ft $i|/usr/bin/bzip2 > /backup/postgres/$i.tar.bz2; if (($rc!=0)) then echo "Fehler bei pg_dump: $i"; fi; done export PGPASSWORD=''