モンスターカレンダー

« 2005年8月 »
12345678910111213141516171819202122232425262728293031

cronでpostgresのdb自動バックアップ

| コメント(0)

■以下のスクリプトを作成し、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

コメントする