Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
- TARGET_HOST="standbyserver.example.com"
- LOGDIR="/var/log/postgres/"
- mkdir -p $LOGDIR
- LOGFILE="backup-log-`/bin/date +%F_%H-%M-%S`"
- DATE="`/bin/date +%F_%H-%M-%S`"
- #exec > $LOGDIR/$LOGFILE 2>&1
- umount /dev/pgtwo/data-snapshot
- /sbin/lvremove -f /dev/pgtwo/data-snapshot
- set -e
- echo "Setting variables..."
- PSQL_BIN="/usr/local/bin/psql"
- DATABASE="template1"
- tag="$(/bin/date +%F)"
- stunde="$(/bin/date +%H)"
- minute="$(/bin/date +%M)"
- dayofweek="$(/bin/date +%a)"
- # Datenbank fuer Backup vorbereiten
- echo "Stopping Postgres backup if runnning..."
- /bin/echo "select pg_stop_backup();" | $PSQL_BIN -U pgsql --quiet -d $DATABASE
- echo "Starting Postgres backup pgdump_$DATE' ..."
- /bin/echo "select pg_start_backup('pgdump_$DATE');" | $PSQL_BIN -U pgsql --quiet -d $DATABASE
- echo "LVM Snapshot von /data erstellen..."
- /sbin/lvcreate -L15G -s -n data-snapshot /dev/pgtwo/data
- echo "Backup beenden..."
- /bin/echo "select pg_stop_backup();" | $PSQL_BIN -U pgsql --quiet -d $DATABASE
- echo "LVM Snapshot mounten..."
- mkdir -p /mnt/backup-work/data-snapshot/
- /bin/mount /dev/pgtwo/data-snapshot /mnt/backup-work/data-snapshot/
- echo "Backup mit tar..."
- mkdir -p /mnt/backup-work/backupdb/
- cd /mnt/backup-work/data-snapshot
- nice -n 19 /bin/tar czf /mnt/backup-work/backupdb/$DATE.tgz --exclude=pgsql/pg_xlog/* pgsql
- echo "LVM Snapshot unmounten und loeschen..."
- cd /mnt/backup-work
- /bin/umount /mnt/backup-work/data-snapshot/
- /sbin/lvremove -f /dev/pgtwo/data-snapshot
- echo "Transfer /mnt/backup-work/backupdb/$DATE.tgz to backup Host $TARGET_HOST"
- rsync -a --progress /mnt/backup-work/backupdb/$DATE.tgz $TARGET_HOST:/restore/basefiles/
- rm "/mnt/backup-work/backupdb/$DATE.tgz"
- echo "Done!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement