Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
72
Help us understand the problem. What is going on with this article?
@taiko19xx

MySQLを毎日バックアップして、S3に同期するシェルスクリプト

More than 5 years have passed since last update.

MySQLのバックアップがローカルマシンだけでは不安でしたので、S3にバックアップと取る事にしました。
もしかしてS3自体でできたかもしれませんが、なんちゃって世代管理も一緒にしています。

前提条件

スクリプト

backup.sh
#!/bin/bash

BACKUP_PATH="/your/backup/path/"
S3_PATH="s3://your-s3-bucket/"
FILE_NAME="mysql_dump_`date +%Y%m%d`.sql.gz"

AWS_CONFIG_FILE="/home/user/.aws/config"

cd $BACKUP_PATH
mysqldump -u mysql_user -p mysql_password --all-databases | gzip > $FILE_NAME

find $BACKUP_PATH -type f -name "mysql_dump_*.sql.gz"  -mtime +9 -daystart | xargs rm -rf

aws s3 sync $BACKUP_PATH $S3_PATH  --delete

細かい説明

  • BACKUP_PATHに、mysqldumpでダンプしたデータがgzipで圧縮されて保存されます
  • S3_PATHに指定したバケットやフォルダに、BACKUP_PATHの中身が同期されます
  • FILE_NAMEはお好みで。スクリプトのままですと、「mysql_dump_20141128_sql.gz」みたいなファイルが出来上がります
  • AWS_CONFIG_FILEには、aws configでアクセスキーやシークレットアクセスキーを設定すると保存される、設定情報へのパスを指定
  • mysql_userとmysql_passwordにはバックアップで使用するMySQLのユーザー名とパスワードを指定。--all-databasesなので全部バックアップしますが、特定のデータベースのみという場合はお好みで変更してください
  • ダンプしたデータはそのままgzipで圧縮されます
  • findで、10日以上経過しているバックアップデータを削除しています。 削除不要な場合は行毎コメントアウト、日数を変えたい場合は-mtimeの後の+9の部分を変更してください。ファイル名を変更している場合は-name の後も変更を忘れずに
  • 最後に、S3に同期します。--deleteオプションは、削除されたファイルをS3から削除するオプションです

おわり

S3が思った以上に安かったので、バックアップとかは最適だと思いました。
早朝とかにcronで回しておきましょう。

参考

http://c-brains.jp/blog/wsg/12/03/28-120435.php
http://d.hatena.ne.jp/LukeSilvia/20100307/p1

72
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
72
Help us understand the problem. What is going on with this article?