PostgreSQLのデータを日時でフルバックアップする

備忘録として。

  • バックアップ要件
    • バックアップスクリプトを cron で定期実行します。
    • cron の実行ユーザは postgres で。
    • 全データベースを対象とします。
    • バックアップは、直近7日分を残して削除します。
***** pg_fullbackup.sh *****

#!/bin/sh
BACKUP_DIR=/opt/backup/pgsql
BACKUP_KEY=pg_dumpall_
BACKUP_FILE=`date +$BACKUP_KEY%y%m%d%H%M.gz`
KEEP_DATE=7

# pgsql fullbackup
/usr/local/pgsql/bin/pg_dumpall -c | gzip > $BACKUP_DIR/$BACKUP_FILE

# delete old files
find $BACKUP_DIR -name "$BACKUP_KEY*" -maxdepth 1 -mtime +$KEEP_DATE -exec rm {} \;
exit 0

***** (postgresユーザの)crontab *****
0 5 * * * /usr/local/pgsql/pg_fullbackup.sh