カテゴリー
WordPress

◆黒い画面(SSH)で◆WordPress のアップグレード前にファイルとデータベースをバックアップする方法

スクリーンショット 2012-12-14 23.39.50.png

WordPress を 3.5 にアップグレードしたいです!でも更新ページへと行くと、「重要: アップグレードの前に データベースとファイルをバックアップしてください。」とメッセージがっ!無視するのも良くないですし。。。ということで本家の説明を見てきました。次のページです。

とても詳細に説明されています。ここで書かれているポイントは、WordPress サイトのファイル全部と、データベース全部のバックアップをとろうよ!ということですね。

これらのポイントを満たすよう黒い画面、つまり SSH でコマンドでささっと済ませてしまいましょう。そして次回も簡単にバックアップが取れるようシェルスクリプト、つまりちょっとしたアプリにしてしまいます。

大事なポイント

ファイル全部のバックアップを取るために Linux のコピーコマンドを、データベース全部のバックアップを取るために MySQL のエクスポートコマンドが重要になってきます。

コピー

# /var/www/ にある html ディレクトリ(配下含む)を、/tmp/test/ にコピーする。
# /tmp/test/ には html ディレクトリとその配下のディレクトリ・ファイルがコピーされる。
# -ar 元ファイルの属性とディレクトリ構成を保持
cp -ar /var/www/html/ /tmp/test/

データベースのエクスポート

# エクスポート(データベース単位)
# mysqldump -u ユーザー名 -pパスワード データベース名 > 出力先ファイル名
mysqldump -u root -prootpassword testdb > /tmp/testdb.sql

おまけでポイント

バックアップだけを考えるなら必要ない知識です。バックアップ先のディレクトリ名を年月日時分としたいのです。その日時をコマンドを使用して取得します。コマンドについて解説なのです♪

日時を表示

# 標準の方式で現在の日付と時刻を表示する
date
# 指定した形式で日付を表示。
# 年(下2けた)月(2けた)日(2けた)時(24時間、2けた)分(2けた)
date +'%y%m%d%H%M'

シェルスクリプトで一発ターンっ!バックアップ

シェルスクリプトを作っておいて、好きなタイミングでいつでもバックアップを取れるようにします。ちょっとしたアプリですね♪

今回の目的は、WordPress アップグレード作業に万が一失敗した時のためのバックアップです。ですので、直ぐにもとに戻せることが肝心です。ですので ZIP に圧縮や、別のサーバに分散して保存など行いません。また、作業終了後には作成したバックアップは消してしまおうと考えています。

シェルスクリプトのポイントは次となります。

  • 「ディレクトリ・ファイルのコピー」「DB のエクスポート」部分を自分の環境に変えれば OK です。
    変更するのは「ディレクトリ・ファイルのコピー」は /var/www/html/example.com/  の部分ですね。
    そして「DB のエクスポート」は  rootpassword のデータベースパスワードと、testdb のデータベース名の部分ですね。
  • 実行権限を与えないと当然ですが動きません。chmod コマンドです。
  • 好きな場所で実行できます(バックアップ先は /tmp )。

ファイル名はお好みですが、bkwp.sh とします。

#!/bin/bash

##################################################
# 変数定義
##################################################

# バックアップ先ディレクトリ
# 場所は /tmp で、ディレクトリ名は yymmddhhmm 形式
NOW=`date +'%y%m%d%H%M'`
BACKUP_DIR=/tmp/$NOW

##################################################
# バックアップ前処理
##################################################

# バックアップ先ディレクトリ作成
mkdir -p $BACKUP_DIR

##################################################
# バックアップ処理
# バックアップ対象をコピー・エクスポート
##################################################

# ディレクトリ・ファイルのコピー
cp -ar /var/www/html/example.com/ $BACKUP_DIR

# DB のエクスポート
mysqldump -u root -prootpassword testdb > $BACKUP_DIR/testdb.sql

このシェルスクリプトはサーバ上で作成しても良いですし、ローカルで作成してアップロードしても良いです。

実際にバックアップします。

スクリプトシェルをアップロードしましたので、あるかどうかを確認しました。

[root@oki2a24 ~]# ll /root/bkwp.sh 
-rw-r--r-- 1 root root 875 12月 15 01:14 /root/bkwp.sh

このままでは実行できませんので、実行権限を bkwp.sh に対して付与しました。

[root@oki2a24 ~]# chmod 744 bkwp.sh

実行権限が付与されたことを確認しました。

[root@oki2a24 ~]# ll /root/bkwp.sh 
-rwxr--r-- 1 root root 875 12月 15 01:14 /root/bkwp.sh

いよいよシェルスクリプトの実行です!一瞬で、2、3秒とかからずに終了しました。逆に不安になります。本当にきちんとバックアップされたのでしょうか?

[root@oki2a24 ~]# /root/bkwp.sh

バックアップされたかどうか確認です。まずはディレクトリが作成されたかどうかを見ました。

[root@oki2a24 ~]# ll /tmp/
合計 4
drwxr-xr-x 3 root root 4096 12月 15 01:15 1212150114

続いてファイル、データベースがバックアップされたことを確認しました。

[root@oki2a24 ~]# ll /tmp/1212150114/

合計 6592
drwxrwxr-x 5 apache apache 4096 11月 27 21:01 oki2a24.com
-rw-r--r-- 1 root root 6731694 12月 15 01:14 wpoki2a24db.sql

問題無いですね。

このあと更にディレクトリをたどってテーマがバックアップされたことを、またデータベースファイルの中身を見て全角文字が化けていないことを確認しました。

これでバックアップ完了です。WordPress をアップグレードし、バージョン3.5にする準備が整いました!

以上です。

「◆黒い画面(SSH)で◆WordPress のアップグレード前にファイルとデータベースをバックアップする方法」への2件の返信

コメントを残す