#/bin/sh
# ログ出力関数の読み込み
# log.fncは別途作成してください。
. log.fnc
# ログ出力
LOG "pgbackup_day.shの実行開始"
# pg_basebackupコマンド
PG_BACKUPCMD=/usr/local/pgsql/bin/pg_basebackup
# PostgreSQLデータベースクラスタ
PGDATA=/home/postgres/data
# アーカイブログ格納ディレクトリ
PGARCHIVEDIR=/home/postgres/data/pg_archivelog
# 実行された曜日の取得
DAY=`date +%w`
# echo ${DAY}
# ベースバックアップ格納ディレクトリ
BACKUP_DIR=/home/postgres/backup${DAY}/
#アーカイブログ削除関数
archivelog_del()
{
PG_ARCHIVEDEL=/usr/local/pgsql/bin/pg_archivecleanup
OLDESTKEPTWAL=`grep file ${BACKUP_DIR}/backup_label | cut -f 6-6 -d ' ' | cut -f 1 -d ')'`
OLDESTKEPTWAL=`ls ${PGARCHIVEDIR}/${OLDESTKEPTWAL}.*.backup | xargs -i basename {}`
${PG_ARCHIVEDEL} ${PGARCHIVEDIR}/ ${OLDESTKEPTWAL}
return 0
}
# 曜日別のベースバックアップ格納ディレクトリの初期化
if test -d ${BACKUP_DIR}
then
# アーカイブログの削除
archivelog_del
LOG "ベースバックアップ格納ディレクトリ内を削除"
rm -rf ${BACKUP_DIR}/*
else
LOG "ベースバックアップ格納ディレクトリを作成"
mkdir -p ${BACKUP_DIR}
fi
# ベースバックアップの取得
LOG "ベースバックアップの取得"
${PG_BACKUPCMD} -D ${BACKUP_DIR} -h localhost -p 5432 -c fast -X f
#ログ出力
LOG "pgbackup_day.shの実行完了"
exit 0