データベース活用しておりますでしょうか?
データベースは、webを始めとするアプリケーション等で幅広く活用されております。
WordPress等のCMSではデータベースを意識せず利用できます。
その為、自覚は無くとも利用しているケース等もあるかもしれません。
そこで今回は「Cronでmysqバックアップを取得する」方法をご紹介致します。
前提条件は以下となります。
- レットハット系OS
- mysqがインストール済み
- xzコマンドが使用できる
ディレクトリの作成
始めにバックアップデータを保存するディレクトリの作成します。
データ保存のディレクトリは任意場所に作成可能となっております。
ご利用環境に合わせてご設定ください。
今回は例として「home」配下に「backup」ディレクトリを作成します。
下記の様に「mkdir」コマンドを使用しディレクトリを作成します。
mkdir -p /home/backup
上記「P」オプションについては下記の記事で解説しております。
バックアップの取得方法
mysqでバックアップを取得するには「mysqldump」コマンドを使用します。
下記コマンドの使用例となります。
mysqldump -A -pパスワード > 保存名
「-A 」オプションは「--all-databases」の短縮形となっており、サーバー上のすべてのデータベースをバックアップ対象とすることを指定しています。
「-p」オプションは「--password」の短縮形で、MySQLに接続するためのパスワードを指定を行っています。
圧縮する
次に取得しダンプファイルを圧縮します。
圧縮を行う事でディスクスペースの節約と取得時の時間短縮につながります。
今回は「xz」形式で圧縮を行います。
今回は例として「md_bk.dump.xz」として保存します。
下記コマンドとなります。
mysqldump -A -pパスワード | xz > md_bk.dump.xz
Cronでバックアップを取得する
最後に先ほどのコマンドを組み合わせCronで定期的にバックアップを取得するできるように設定します。
日時でバックアップを取得する場合は以下のパス内にシェルを作成し実行します。
/etc/cron.daily
今回は例として「md_bk.sh」として作成致します。
vi /etc/cron.daily/md_bk.sh
シェルの内容は以下となります。
#! /bin/bash
/usr/bin/mysqldump -A -pパスワード | /usr/bin/xz > /home/backup/mysql.dump.xz
Cronでコマンドを実行する際が上記様にコマンドのパスを指定する事が推奨されております。
最後に作成したシェルに実行権限を付与します。
chmod +x /etc/cron.daily/md_bk.sh