条件
データーベースごとのバックアップ
シェルスクリプトを記述してcronで定期的にバックアップ
バックアップしたものは圧縮して保存
バックアップで一週間過ぎたものは削除される
#シェルスクリプト
シェルスクリプトの処理
pg_dumpでダンプファイルの取得
tarコマンドで圧縮
保存期間のすぎたファイルの削除
バックアップ場所の作成(/var/backup/
へ作成します)
#mkdir -p /var/backup/
#chmod 777 /var/backup/
シェルスクリプトの作成
#mkdir -p /var/backup_sh/
#vi /var/backup_sh/pg_backup.sh
pg_backup.sh
#!/bin/bash
# バックアップファイルを残しておく日数
PERIOD='+7'
# 日付
DATE=`date '+%Y%m%d'`
# バックアップ先ディレクトリ
SAVEPATH='/var/backup/'
# 先頭文字
PREFIX='project-'
# 拡張子
EXT='.sql'
# データーベース名
USER='user'
DBNAME='sampledb'
# バックアップ実行
pg_dump -U $USER $DBNAME > $SAVEPATH$PREFIX$DATE$EXT
# tar圧縮
tar --remove-files -P -zcvf $SAVEPATH$PREFIX$DATE$EXT.tar.gz $SAVEPATH$PREFIX$DATE$EXT
# 保存期間が過ぎたファイルの削除
find $SAVEPATH -type f -daystart -mtime $PERIOD -exec rm {} \;
#シェルスクリプトが実行できるように実行権限付与
#chmod u+x /var/backup_sh/pg_backup.sh
#cronで定期的に実行
毎日深夜2時に実行する例。
#crontab -e
crontab
00 2 * * * /var/backup_sh/pg_backup.sh