#!/bin/bash # We want any failure to get passed back to the script # which called us. Rather than carefully keeping track # of return codes, we bail on error set -e HOSTNAME=$1 SRCDIR=$2 ZFSTARGET=$3 # Configuration for this backup (i.e. setting PGDUMP_DATABASE and PGDUMP_EXTrA_OPTIONS # are now found on the client in /etc/chem-rsync-backup-client/pgdump_config SSHUSER=${SSHUSER:-root} MOUNT=$(zfs get -H -ovalue mountpoint $ZFSTARGET) BACKUP_ROOT=$MOUNT/pgdumps PGDUMP_DEST=$BACKUP_ROOT/pgdumps-master/ PGROLE_DEST=$BACKUP_ROOT/pg_roles mkdir -p $PGDUMP_DEST # Dump the database to a temporary directory and export roles there too ssh ${SSHUSER}@${HOSTNAME} /usr/local/lib/chem-rsync-backup-client/prepare_postgres # Copy those here rsync -av --checksum --delete --no-times ${SSHUSER}@${HOSTNAME}:/var/adm/backup/pg_dump/pgdump/ $PGDUMP_DEST scp ${SSHUSER}@${HOSTNAME}:/var/adm/backup/pg_dump/pg_roles $PGROLE_DEST # Tidy up ssh ${SSHUSER}@${HOSTNAME} /usr/local/lib/chem-rsync-backup-client/tidy_postgres