指定したファイルを定期的にバックアップする
2017年02月17日
毎日DBを更新するプログラムをcronに登録したので、そのファイルを毎日バックアップするスクリプトを作った。
上記サイトのスクリプトほぼそのまま。
#!/bin/bash
# バックアップ先
BACKUP_DIR=~/public_html/kazegusuri.net/db/#bk
# バックアップ対象フォルダ
TARGET_DIR=~/public_html/kazegusuri.net/db/
# バックアップ対象ファイル
TARGET_FILE=kazegusuri.sqlite3
# バックアップ後のファイル名
BACKUP_FILE_NAME=kazegusuri.sqlite3-`/bin/date +%Y%m%d`.tar.gz
# 今日の日付
DATE=`/bin/date '+%Y%m%d'`
# 削除する日付(14日分残す)
touch -m -d `(/bin/date -d '-14 day' +%Y%m%d)` /tmp/wpbk
# バックアップ処理
cd $TARGET_DIR
tar czfp $BACKUP_FILE_NAME $TARGET_FILE
mv $BACKUP_FILE_NAME $BACKUP_DIR
# 古いバックアップを削除
find $BACKUP_DIR -not -newer /tmp/wpbk -name "*tar.gz" | xargs rm -f
変えたのは以下。
・バックアップ対象をファイル名指定にした
・世代管理を14日分にした
・# 削除する日付(14日分残す) の部分
「'(`中身`)'」を「`(中身)`」に変えた
・# 古いバックアップを削除 の部分
パイプの後ろ「rm -f」を「xargs rm -f」に変えた
crontab -e毎日3時30分にスクリプトを実行。
30 3 * * * /bin/bash -lc ~/script/backup_kazegusuri_db.sh
ちゃんと古いファイルが消されるかは後で確認しておこう。
old « 湯島天神の梅まつりとメジロとすずめ。 | メイン | CP+ 2017に行ってきた » new