#!/bin/bash

#Author: Jana Nguyen/Kennon Kwok
#This script backsup a postgres database, it is intended to be run
#by postgres user cron once per day.
#this needs to be cleaned up a bit but it works - kkwok
#
#Modified By: Jeffrey Grethe 
#Added transfer to chump for off-machine storage

echo "`date` - Backing up the PostgreSQL database. . . \n">/var/log/postgres-daily-backup`date +%F`.log 2>&1

DIRNAME="/export/pgsql_backups"
FILENAME="/export/pgsql_backups/postgres_db_backup"

mkdir -p ${DIRNAME}
chown -R postgres ${DIRNAME}
chmod -R 700 ${DIRNAME}

#rotate 'em
#rotate 'em
cp -f ${FILENAME}.4 ${FILENAME}.5
cp -f ${FILENAME}.3 ${FILENAME}.4
cp -f ${FILENAME}.2 ${FILENAME}.3
cp -f ${FILENAME}.1 ${FILENAME}.2
cp -f ${FILENAME} ${FILENAME}.1

#run the backup
su - postgres -c "pg_dumpall > ${FILENAME}"

rm ${FILENAME}.tgz
tar -czf ${FILENAME}.tgz ${FILENAME}

#cd /opt/BIRN/sbin
#./backup.sh
#scp -i /home/vrowley/.ssh/id_rsa_backup ${FILENAME}.tgz vrowley@chump.ucsd.edu:/home/vrowley/BACKUPS/NITRC/postgres-`date +%F`_`hostname | cut -d. -f1`.tgz
echo "`date` - Finished PostgreSQL Backup \n">/var/log/postgres-daily-backup`date +%F`.log 2>&1

