業務で、__念のため定期的にDBのダンプを取得したい。__と言われることがよくある。実際は「毎日」と言われることがほとんどだが。そのためのスクリプトを書いた。
このスクリプトをcron
などで定期的に実行してやればよい。
# 諸々の設定
user=hogeuser
password=hogepass
dbName=hogedb
tableName='hogetable(※複数ある場合は半角スペース区切り)'
today=`date '+%Y%m%d'`
backupDir=/path to backup directory/
fileName=hogefile
# dumpを圧縮して取得
mysqldump -u ${user} -p${password} -t ${dbName} ${tableName} | gzip > ${backupDir}${fileName}${today}.dump.gz
※=
の前後に半角スペースを入れると上手く動かなかったので注意。
後は、取得すると言っても、
- サーバーの容量
- 1日の取得回数
- 取得時間
- 何日分を残し、過ぎたら削除
などを考慮し、タイミングと取得するデータを決める必要もあるので、その辺は要相談。
2105/01/15追記
KazBondさんにコメントいただき、圧縮して取得するように修正致しました。