WordPressのバックアップにも!MySQLデータベースをcronで自動化バックアップする方法

2016/09/22

31_1
WordPressを利用しているサイトは必然的にMySQLのデータベースを利用するようになります。データベースにはWordPressで投稿した記事の内容やユーザー情報・設定など大切な内容が保存されています。これがシステムや自身のミスなどで壊れたり消去されてしまったら全てを1から…となってしまい意気消沈します。そんな悲劇を避けるためにも定期的なデータベースのバックアップをしておきましょう。
 
それでは、cronを利用してMySQLのデータベースを自動でバックアップする方法を紹介していきたいと思います!

バックアップを保存するディレクトリの作成

まずはsshでサーバーへ接続してから任意の場所にバックアップを保存するディレクトリを作成します。
私の場合は、rootユーザーでrootディレクトリ内にmsql > backupという形でディレクトリを作成しました。

~ cd /root //ルートディレクトリへ移動
~ mkdir mysql && mkdir mysql/backup //rootディレクトリ内にmysql、その中にbackupディレクトリを作成

上記が実際に入力するコマンドになります。
 
これでバックアップファイルを保存しておくディレクトリの作成ができました。

シェルスクリプトの作成

次にバックファイルを作成するためのシェルスクリプトを作成します。シェルスクリプトは、シェル(コマンドを入力して結果を表示する行為)をまとめて書いておくことで一括した処理を実行することです。
それではシェルスクリプトの作成方法をみていきましょう。
 

~ cd root //rootディレクトリへ移動
~ vi backupmysql.sh //新しくbackupmysql.shというファイルの作成

上記のコードは、まずrootディレクトリへ移動してbackupmysql.shという名前のシェルスクリプトファイルの作成をしています。
 

#!/bin/sh

# バックアップの保存日数
period=3

# バックアップを保存するディレクトリの指定
dirpath='/root/mysql/backup'

# ファイル名の指定(今回は保存した日にちをファイル名にします)
filename=`date +%y%m%d`

# 指定したDBのスキーマおよびデータをすべて吐き出す
mysqldump -u[ユーザ名] -p[パスワード] -h[ホスト名] [データベース名] > $dirpath/$filename.sql

# パーミッション変更
chmod 700 $dirpath/$filename.sql

# 保存期間を過ぎたバックアップを削除
oldfile=`date --date "$period days ago" +%y%m%d`
rm -f $dirpath/$oldfile.sql

作成画面になったら上記の内容を貼り付けします。ユーザー名・パスワード・ホスト名・データベース名は自分の設定で書き換えてください。
 

~ chmod 0700 /root/backupmysql.sh

backupmysql.shには、データベースへの接続情報などが記述してあるのでrootユーザー以外からは見れないようにパーミッションを変更します。

動作確認

~ ./backupmysql.sh

上記のコマンドを実行してバックアップディレクトリにファイルが保存されていれば成功です!

cronでバックアップを自動化する設定

シェルスクリプトを作成して、手動でバックアップファイルが保存されることを確認できたら次はcronの設定をして自動でバックアップできるように設定していきます。
 

~ echo "0 3 * * * root /root/backupmysql.sh" > /etc/cron.d/backupmysql

上記のコマンドを実行すると、午前3時に毎日バックアップを実行するように設定されます。

実行する日時設定の数値について

cronの日時設定は、[* * * * *]が[分・時・日・月・曜日]になります。先ほどの設定だと、[0 3 * * *]なので午前3時という設定になり毎日実行されるようになります。
 
曜日の設定数値は、0=日曜 ~ 7=日曜となっていて、1=月曜、2=火曜、3=水曜、4=木曜、5=金曜、6=土曜になります。

cronで実行している設定の確認

~ crontab -l

上記のコマンドを実行するとcronで設定しているものが確認できます。

ここまで設定ができたら指定した時間にバックアップファイルが保存ができているか確認してみましょう。無事にファイルが作成されていたら成功です!
これで、もしもデータベースが消失してしまうようなトラブルがあっても復元ができるので安心です。バックアップは大切なことなので是非試してみてはいかがでしょうか(^^)

About

madka prof

WebLifeTimesはWebデザイナーのMadkaがWeb制作に関連したことや日々のちょっと気になったことなどを調べたり記録しているサイトです。TwitterFacebookで気になったニュース記事をシェアしたり独り言をつぶやいたりしています!

New Post

Recommend