postgresql backup

#!/bin/sh

# Database backup script
# Backup use postgres pg_dump command:
#    pg_dump -U <user> -Fc <db> > <DB_DUMP_FILE>
# To restore, use postgres pg_restore command:
#    pg_restore -d postgres <DB_DUMP_FILE>

HOST_IP=`/sbin/ifconfig | sed -n 's/.*inet addr:\([0-9.]\+\)\s.*/\1/p' | head -n1`
POSTGRES_HOME=/opt/postgres
BACKUP_DIR=/backup/$HOST_IP
BACKUP_FILENAME_PREFIX="db_backup_"
CURRENT_TIME=`date +'%Y-%m-%d_%H%M%S'`
KEEP_DAYS=30

mkdir -p $BACKUP_DIR

BACKUP_FILE=$BACKUP_DIR/$BACKUP_FILENAME_PREFIX$CURRENT_TIME.dump

echo "`date` starting database backup: $BACKUP_FILE"

#full database backup
$POSTGRES_HOME/bin/pg_dump -U postgres -Fc postgres > $BACKUP_FILE

echo "`date` database backup completed: $BACKUP_FILE"

#delete files older than $KEEP_DAYS
find $BACKUP_DIR -mtime +$KEEP_DAYS -exec rm {} \;

猜你喜欢

转载自www.cnblogs.com/tben/p/8985110.html