PostgreSQL backup

Oct 16, 2010 16:07

Заметка на полях.
Ранняя версия скрипта бекапированися баз для PostgreSQL
Умеет:
Бекапы и вакуум перечисленных БД
Ротация бекапов
Копирование бекапов на удаленный хост по ssh*
Ротация бекапов на удаленном хосте *
*требуется дополнительная настройка авторизации по открытому ключу

#!/bin/bash
BACKUPDIR="/backup/"
PGHOST="127.0.0.1"
REMOTEHOST="192.168.1.141"
SSHUSER="sshuser"
PGPORT="5432"
PGUSER="postgres"
PGBIN="/opt/PostgreSQL/8.4/bin/"
BACKUPLOG="/backup/backup.log"
thedate=`date --date="today" +%Y%m%d`
themonth=`date --date="today" +%Y%m`

echo "" > $BACKUPLOG

#put the names of the databases you want to create an individual backup below
dbs=(database1, database2)

#iterate thru dbs in dbs array and backup each one
for db in ${dbs[@]}
do
        DATE=`date +%H:%M:%S`
        echo '[INFO] ('$DATE') Vacuum database ' $db >>$BACKUPLOG
        $PGBIN/vacuumdb -h $PGHOST -p $PGPORT -U $PGUSER -f -v $db 2>>$BACKUPLOG
        $PGBIN/vacuumlo -h $PGHOST -p $PGPORT -U $PGUSER -v $db 2>>$BACKUPLOG
pg_dump  -h $PGHOST -p $PGPORT -U $PGUSER -F c  -O -v -f $BACKUPDIR/ccam-$thedate.backup_$dbs 2>>$BACKUPLOG
done

rm -f $BACKUPDIR/*`date --date="last day" +%Y%m%d`*.backup

scp $BACKUPDIR/ccam-$thedate.backup $SSHUSER@$REMOTEHOST:$BACKUPDIR
ssh  $SSHUSER@$REMOTEHOST rm -f $BACKUPDIR/*`date --date="-3 day" +%Y%m%d`*.backup

DATE=`date +%H:%M:%S`
echo '[INFO] ('$DATE') Done ' >>$BACKUPLOG

Уточнения  приветствуются.

postgresql, it

Previous post Next post
Up