■以下のスクリプトを作成し、cron.daily下に置く。
・DBをVACUUM後、圧縮してバックアップをとる。下記ではtargetdbというDBを対象としている。
・ある日にちより以前のバックアップファイルを消去する。下記では2日より前。
#!/bin/sh
TDAY=$(date +%Y%m%d)
PATH="$PATH":/usr/local/pgsql/bin
LOG=/bkup/logs/bkup.log
echo "dbbkup start." `date` >>$LOG
find /bkup/ -type f -mtime +2 | /usr/bin/xargs /bin/rm -f >>$LOG
su postgres -c "vacuumdb targetdb" >>$LOG 2>>$LOG
su postgres -c "pg_dump targetdb | gzip > /bkup/db_$TDAY.backup.gz" 2>>$LOG
echo "dbbkup end." `date` >>$LOG
※$LOGにメッセージを出力する処理はエラーが出てなんだかうまくいってません(笑 実力不足です。。
■圧縮したファイルを解凍
$gzip -dc db_20050815.backup.gz
■参考
https://bclub.biz/inf/inf_linux.htm
https://sonic64.hp.infoseek.co.jp/2003-04-16.html
コメントする