■以下のスクリプトを作成し、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にメッセージを出力する処理はエラーが出てなんだかうまくいってません(笑 実力不足です。。