一部のシステムで SQLite を使用しているけど

ごく稀に SQLiteDB が潰れる事を考えて

オンラインだけど日々バックアップ出来るように

shell を作成する事にしました

仕様

  1. バックアップ保存日数(7日間)で管理する。
  2. バックアップ保存日数が過ぎたデータは自動的に削除する。
  3. バックアップ先を日付フォルダにする。

仕様をまとめた shell が以下の内容になります

#!/bin/sh

#バックアップ保存日数
keepday=7

#バックアップ格納場所
bkdir=/mnt/DB

#ログ格納場所
logdir=/var/log/backup

#バックアップログ
logfile=DBbackup.log

#バックアップ日付
bk_date=`date +%Y%m%d`

#バックアップ削除日付
rm_date=`date "-d$keepday days ago" +%Y%m%d`

#バックアップフォルダ作成
mkdir $bkdir/$bk_date

#バックアップデータ削除
rm -fr $bkdir/$rm_date

echo "DB Backup Start!" >>$logdir/$logfile
date >>$logdir/$logfile

cp -fpra /web/DB/ $bkdir/$bk_date

date >>$logdir/$logfile
echo "DB Backup End!" >>$logdir/$logfile

 

後は、crontab に登録すれば完了です

筆者の環境では毎日1時にバックアップ出来るようにしました

00 01 * * * root bash /shell/backup/DB_backup.sh

これで SQLite の DB が潰れても復旧が簡単です