DBの自動バックアップ機能を設定

先日、バックアップから戻そうとしたとき、
きちんとバックアップを取っていなかったため、
半年分のブログデータを失った。
取るに足らない内容と件数なのではあるが、
これを機にDB(MySQL)に対する、
自動バックアップの仕掛けをしておこうと思う。

※ここに書いてあるIPやユーザなどは架空です

バックアップ先 10.10.1.100
※常時稼動のWindows機。CygwinでSSHdを起動(前提)
※バックアップ元から、公開鍵認証による自動SSH接続ができるようにする(前提)

バックアップ元に下記シェルスクリプトを保存し、
cronで毎日動くように設定した。
念のため、10世代は残すようにしてみた。

#!/bin/bash

# バックアップファイルを何日分残しておくか
period=10

# バックアップファイルを保存するディレクトリ
dirpath=’/cygdrive/f/sqladm.jp/sql/’

# ファイル名を定義(※ファイル名で日付がわかるようにしておきます)
filename=`date +%Y%m%d`

# SQL実行と、古いバックアップファイルを削除
cnt=`ssh sqladm@10.10.1.100 ls /cygdrive/f/sql/pierre.jp/sql | wc -l`
#echo $cnt
if [ $cnt -ge $period ]; then
# mysqldump実行
mysqldump -u root –password=パスワード -x –all-database | ssh sqladm@10.10.1.100 “cat > /cygdrive/f/sqladm.jp/sql/$filename.sql”
ssh sqladm@10.10.1.100 “/usr/bin/find $dirpath -mtime +$period -execdir rm -f {} \;”
else
echo “No remove target.”
# mysqldump実行
mysqldump -u root –password=パスワード -x –all-database | ssh sqladm@10.10.1.100 “cat > /cygdrive/f/sqladm.jp/sql/$filename.sql”
fi
exit

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です