2017年6月3日土曜日

MySQLの自動バックアップを設定する

Raspberry PiにMySQLをインストールするでRaspberry PiでMySQLを使用できるようにしたが、いざというときのためにバックアップをとっておきたい。データベースのバックアップはmysqldumpコマンドでできるが、いちいち手動で行うのは面倒なので、cronで自動的にできるようにする。


環境


OSはRaspbian Jessie、MySQLのバージョンは5.5。



mysqldumpをパスワード入力なしで使えるようにする


mysqldumpをパスワード入力なしで使用できるようにして、シェルスクリプトで実行できるようにする。パスワードを記述するファイルをホームディレクトリに作成して、それをmysqldumpのオプションで読み込む。



以下の内容を記述する。ここでは仮にパスワードをpasswordとする。


作成したファイルの権限を600に変更する。これでmysqldumpをパスワード入力なしで使用できる。


データベースをバックアップするコマンドは以下のようになる。user_nameはMySQLのユーザ名、db_nameはデータベース名。


さらに、バックアップしたファイルを圧縮するには以下のコマンド。



シェルスクリプトの作成


cronで実行するシェルスクリプトを作成する。曜日ごとにバックアップファイルを作成して、1週間分のバックアップを残せるようにする。

スクリプトは以下の通り。
#!/bin/bash

fname="mysqldump_"$(LANG=en_US.UTF-8 date '+%a')".sql.gz"
/usr/bin/mysqldump --defaults-file=/home/user_name/.my.cnf -u user_name --databases db_name | gzip > ${fname}


スクリプトに実行権限を付与する。


動作確認。金曜日に実行したなら、mysqldump_Fri.sql.gzというファイルが作成されていればOK。



cronの設定


cronで、作成したシェルスクリプトを実行できるようにする。


毎日午前5時に実行するには以下のような記述を追加。


cronを再起動する。



0 件のコメント:

コメントを投稿