MySQL の時系列バックアップを自動で作成するシェルスクリプト
下記のシェルスクリプトでサーバーの MySQL を全てバックアップすることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/bin/bash # config backup_parent_dir=~/backup rootpass=xxxxxxxxxxxxxxxx retention_period=10 # dir setting backup_dir=`date +%Y-%m-%d` remove_dir=`date "-d$retention_period days ago" +%Y-%m-%d` mkdir -p $backup_parent_dir/$backup_dir rm -rf $backup_parent_dir/$remove_dir # backup dblist=`ls -p /var/lib/mysql | grep / | tr -d /` for dbname in $dblist do if [ $dbname != "mysql" -a $dbname != "performance_schema" -a $dbname != "test" ]; then mysqldump --skip-lock-tables -u root $dbname -p$rootpass | gzip > $backup_parent_dir/$backup_dir/$dbname.sql.gz fi done
これを実行すればまず時系列の MySQL のバックアップは作成できると思います。cron でバックアップを行う場合は下記のように記述をすれば良いです。
1
0 4 * * * sh ~/mysql-backup.sh
これをローカルにダウンロードするシェルを書いて定期的に実行すれば、バックアップを完全に行うことができます。ちなみに cron で下記のようなコードを実行してもバックアップをダウンロードすることができません。どうすればダウンロードできるかご存知の人がいたら教えてください。
1
rsync -vhHpltzru -e "ssh hoge:~/backup/" ~/Sites/localhost/backup/weble/mysql
関連記事
- MySQL のバックアップを cron で定期的に自動で行う
- MySQL でプロセスを強制終了する方法
- MySQL で CLI からデータベースのテーブルを一覧にする方法
- MySQL の root パスワードを忘れた際にコマンドラインで新しく設定・リセットする方法
- Mac OS X Lion にしたらなぜか php.ini が消滅して MySQL が使えなくなった
- CentOS で MySQL が起動しない場合に行った対処メモ
- ヘテムルで複数の MySQL をまとめて自動バックアップをする方法
- 巨大でローカルに保存できない MySQL のダンプファイルを外部サーバーに SSH で保存する方法
- mysqldump でバックアップが取れない件から MySQL の場所とかを物凄い追求しました
- サーバーを強制終了した時に MySQL が破損した際は REPAIR TABLE で修復する
コメント
コメントは受け付けていません。