Raspberry PiにMySQLをインストールするでRaspberry PiでMySQLを使用できるようにしたが、いざというときのためにバックアップをとっておきたい。データベースのバックアップはmysqldumpコマンドでできるが、いちいち手動で行うのは面倒なので、cronで自動的にできるようにする。
OSはRaspbian Jessie、MySQLのバージョンは5.5。
mysqldumpをパスワード入力なしで使用できるようにして、シェルスクリプトで実行できるようにする。パスワードを記述するファイルをホームディレクトリに作成して、それをmysqldumpのオプションで読み込む。
以下の内容を記述する。ここでは仮にパスワードをpasswordとする。
作成したファイルの権限を600に変更する。これでmysqldumpをパスワード入力なしで使用できる。
データベースをバックアップするコマンドは以下のようになる。user_nameはMySQLのユーザ名、db_nameはデータベース名。
さらに、バックアップしたファイルを圧縮するには以下のコマンド。
cronで実行するシェルスクリプトを作成する。曜日ごとにバックアップファイルを作成して、1週間分のバックアップを残せるようにする。
スクリプトは以下の通り。
スクリプトに実行権限を付与する。
動作確認。金曜日に実行したなら、mysqldump_Fri.sql.gzというファイルが作成されていればOK。
cronで、作成したシェルスクリプトを実行できるようにする。
毎日午前5時に実行するには以下のような記述を追加。
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 件のコメント:
コメントを投稿