一部のシステムで SQLite を使用しているけど
ごく稀に SQLite の DB が潰れる事を考えて
オンラインだけど日々バックアップ出来るように
shell を作成する事にしました
仕様
- バックアップ保存日数(7日間)で管理する。
- バックアップ保存日数が過ぎたデータは自動的に削除する。
- バックアップ先を日付フォルダにする。
仕様をまとめた 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 が潰れても復旧が簡単です