Advertisement
Guest User

mario

a guest
Aug 19th, 2009
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.80 KB | None | 0 0
  1. #!/bin/bash
  2. export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  3.  
  4. TARGET_HOST="standbyserver.example.com"
  5.  
  6. LOGDIR="/var/log/postgres/"
  7. mkdir -p $LOGDIR
  8.  
  9. LOGFILE="backup-log-`/bin/date +%F_%H-%M-%S`"
  10. DATE="`/bin/date +%F_%H-%M-%S`"
  11. #exec > $LOGDIR/$LOGFILE  2>&1
  12.  
  13. umount /dev/pgtwo/data-snapshot
  14. /sbin/lvremove -f /dev/pgtwo/data-snapshot
  15.  
  16. set -e
  17.  
  18. echo "Setting variables..."
  19. PSQL_BIN="/usr/local/bin/psql"
  20. DATABASE="template1"
  21. tag="$(/bin/date +%F)"
  22. stunde="$(/bin/date +%H)"
  23. minute="$(/bin/date +%M)"
  24. dayofweek="$(/bin/date +%a)"
  25.  
  26.  
  27. # Datenbank fuer Backup vorbereiten
  28. echo "Stopping Postgres backup if runnning..."
  29. /bin/echo "select pg_stop_backup();" | $PSQL_BIN -U pgsql --quiet -d $DATABASE
  30.  
  31. echo "Starting Postgres backup pgdump_$DATE' ..."
  32. /bin/echo "select pg_start_backup('pgdump_$DATE');" | $PSQL_BIN -U pgsql --quiet -d $DATABASE
  33.  
  34.  
  35.  
  36. echo "LVM Snapshot von /data erstellen..."
  37. /sbin/lvcreate -L15G -s -n data-snapshot /dev/pgtwo/data
  38.  
  39. echo "Backup beenden..."
  40. /bin/echo "select pg_stop_backup();" | $PSQL_BIN -U pgsql --quiet -d $DATABASE
  41.  
  42. echo "LVM Snapshot mounten..."
  43. mkdir -p /mnt/backup-work/data-snapshot/
  44. /bin/mount /dev/pgtwo/data-snapshot /mnt/backup-work/data-snapshot/
  45.  
  46. echo "Backup mit tar..."
  47. mkdir -p /mnt/backup-work/backupdb/
  48. cd /mnt/backup-work/data-snapshot
  49. nice -n 19 /bin/tar czf /mnt/backup-work/backupdb/$DATE.tgz  --exclude=pgsql/pg_xlog/* pgsql
  50.  
  51. echo "LVM Snapshot unmounten und loeschen..."
  52. cd /mnt/backup-work
  53. /bin/umount /mnt/backup-work/data-snapshot/
  54. /sbin/lvremove -f /dev/pgtwo/data-snapshot
  55.  
  56.  
  57.  
  58. echo "Transfer /mnt/backup-work/backupdb/$DATE.tgz to backup Host $TARGET_HOST"
  59. rsync -a --progress /mnt/backup-work/backupdb/$DATE.tgz $TARGET_HOST:/restore/basefiles/
  60. rm "/mnt/backup-work/backupdb/$DATE.tgz"
  61. echo "Done!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement