WordPressを使って運用しているブログのデータが何らかの理由で壊れてしまったとしてもバックアップがあればリストアすることができます。
バックアップを取得した時点の状態になるので壊れた瞬間と全く同じ状態とはなりませんが完全にデータがなくなってしまうよりははるかにましだと思います。
リストアする手段はいくつかあるのですが、今回はサーバーにログインしてリストアする手順を記事にしたいと思います。
バックアップの取得についてはこちらの記事をご覧ください。
当記事においては上記記事の手順で取得したバックアップを使ってリストアします。
ファイルやディレクトリの削除と上書きを伴う作業です。
実施の際には十分に注意し、自己責任にてお願いします。
前提条件
- SSHログインもしくはサーバーコントロールパネルなどに実装されているコンソールからサーバーにログインできること
- CLIに慣れていること
バックアップファイルをサーバーにコピー
scpコマンドやファイル転送ソフトなどを使ってサーバーにバックアップファイルをコピーします。
ちなみに私は普段Macを使っているのですが、ファイル転送ソフトは「Transmit」を使っています。
適当な作業用ディレクトリを作ってそこにコピーするのがいいと思います。
ファイルのリストアのコマンド例
対象となるディレクトリをtarコマンドでアーカイブしてgzip形式で圧縮したファイル(拡張子はtar.gz)を展開します。
当該ファイルは「backup.tar.gz」とし、展開後に作成されるディレクトリは「wordpress」とします。
sudo tar -xzvpf backup.tar.gz # パーミッション情報やタイムスタンプも復元する場合
tar -xzvf backup.tar.gz # sudoコマンドが使えない場合
壊れてしまったWordPress用のディレクトリを削除します。
当該ディレクトリは「/var/www/wordpress」とします。
sudo rm -rf /var/www/wordpress
rm -rf /var/www/wordpress # sudoコマンドが使えない場合
展開したディレクトリを移動します。
sudo mv wordpress /var/www
mv wordpress /var/www # sudoコマンドが使えない場合
以上でファイルのリストアは完了です。
データベースのリストアのコマンド例
壊れてしまったデータベースを削除します。
当該データベースの接続情報については、ユーザー名は「blog」、パスワードは「blogpass」、データベース名は「wpdb」とします。
mysql -u blog -pblogpass # -pの後にスペースは不要です
drop database wpdb;
権限の関係で削除できなかった場合はrootなどの管理ユーザーでログインしてください。
(Linuxユーザーのrootではなく、データベースユーザーのrootです)
mysqldumpコマンドで取得したバックアップからデータベースをリストアします。
バックアップファイルは「wpdb.sql」とします。
mysql -u blog -pblogpass < wpdb.sql
# -pの後にスペースは不要です
以上でデータベースのリストアは完了です。
まとめ
バックアップさえあればそれほど手間をかけることなくリストアすることができます。
万が一の時に備えてテスト環境などで練習しておくのがいいと思います。
コメント