こんにちは、中田です。
RDSでしっかりとバックアップ!
とまでしなくていい場合、どうやろうかとか色々考えるの面倒ですよね。
なので、これやっとけば一先ずバッックアップ取れるってやり方を残しておきます。
前提
OS:CentOS6.4
mysql:5.6
AWSのAPI-KEY, S3のバケット作成済みであること
流れ
1.AWSコマンドラインインターフェイス(aws-cli)導入
2.シェルスクリプト作成
3.cron設定
以上!
1.AWSコマンドラインインターフェイス(aws-cli)導入
pipを使ってインストール作業をする訳ですが、pipが入ってなかったのでまずはそこから。
$ curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | sudo python $ pip -V
はい、入りました。
では、aws-cliのインストールと初期設定を行います
$ sudo pip install awscli $ aws configure
コマンド実行すると設定項目が聞かれます
AWS Access Key ID [None]: xxxxxxxxxx AWS Secret Access Key [None]: xxxxxxxxxx Default region name [None]: ap-northeast-1 Default output format [None]: json
AWS Access Key/AWS Secret Access Key は事前にAWSコンソール画面より作成したものを設定してください。
2.シェルスクリプト作成
aws-cliを使ってS3にバックアップをするシェルスクリプトを書きます
#!/bin/bash BACKUP_PATH="/opt/data/" S3_PATH="s3://data_backup/" FILE_NAME="mysql_dump_`date +%Y%m%d%H%M%S`.sql.gz" AWS_CONFIG_FILE="/home/centos/.aws/config" cd $BACKUP_PATH mysqldump -uAAAA -pBBBB CCCC | gzip > $FILE_NAME find $BACKUP_PATH -type f -name "mysql_dump_*.sql.gz" -mtime +14 -daystart | xargs rm -rf aws s3 sync $BACKUP_PATH $S3_PATH --delete
・BACKUP_PATHはmysqldumpファイルを格納する場所
・S3_PATHはバケットのパス
・mysqldumpの
AAAAはmysqlユーザー(前にスペースはいれない)
BBBBはパスワード(前にスペースはいれない)
CCCCは対象データベース
・findコマンドの行は、14日以降立ったものを削除してます
・最後の行はBACKUP_PATH毎同期を取ってます
3.cron設定
2.で作成したシェルをcronに設定して定期実行します
crontab -e
0 * * * * /home/centos/mysql_backup.sh
これで1時間毎、14日分のバックアップが自動で取れます。
いやはや、簡単簡単〜〜
感謝サイト
http://qiita.com/taiko19xx/items/215b9943c8aa0d8edcf6