WordPress.com のブログをバックアップする

WordPress.com のブログをはじめてもう1年以上経過した。このブログの記事は全部 Emacs の org2blog を利用して書いており、記事の下書き (org ファイル) はローカルに残っているので、バックアップを取ろうとはあまり考えなかった。しかし、さすがに投稿記事が増えてきたので、もしもサーバーのデータが消えた場合、ローカルの記事を再度投稿するには手間がかかりすぎる。ということで、この WordPress.com のブログのバックアップを取ってみた。

無料ブログなので、サーバーに入ってどうこうといったことはできないが、バックアップ用のツールは用意されている。WordPress 管理画面から「ツール」の「エクスポート」を実行すると、すべてのコンテンツが XML ファイルとしてエクスポートされる。ただし、画像等のメディアデータはエクスポートされない。画像一つ一つはダウンロードできるが、どうもすべて一括でダウンロードすることはできないようである。

そこで、投稿記事はすべて XML でエクスポートされるので、そこから画像の URL を抜き出せば可能かな、と考え試してみた。抽出した XML ファイルが amrta.wordpress.2012-10-09.xml であるとして、端末で以下を実行する。

$ cat amrta.wordpress.2012-10-09.xml | sed -n 's/.*<img src="\([^"]*\)".*/\1/p' | xargs wget -c -x

これで USERNAME.files.wordpress.com というフォルダに記事中に引用された画像ファイルが、ディレクトリ構造を保持したままダウンロードされると思う。

# この方法にはあまり自信がないので、他に良い方法があれば教えていただければうれしいです。

なお、WordPress.com から他のサーバーの WordPress にデータ移動する場合、エクスポートされた XML ファイルのみで 画像データ等の移動も可能なようである。

実際に試してみる

さて、最近 Mac OS X Mountain Lion にアップグレードして色々設定を行なっているが、先日 MySQL も入れたので、ついでに WordPress をローカルに立てて、実際にバックアップ (XML) からリストアしてみる。

ローカルでの WordPress のインストールは Web 上にたくさん情報があるのでここでは割愛する。といっても、MAMP 環境さえ整っていれば、WordPress 自体はとてもスムーズにインストールできるようになっている。

さて、ブラウザの WordPress 管理画面から今度は「ツール」の「インポート」を実行する。上でエクスポートした XML ファイル (amrta.wordpress.2012-10-09.xml) を選択して、「ファイルをアップロードしてインポート」を実行する。重要なのは、途中で「Import Attachments」の「Download and import file attachemetns」にチェックを入れること。

https://skalldan.files.wordpress.com/2012/10/wpid-import_wordpress.png

これで「Submit」を押してしばらくすると、旧サーバー (WordPress.com) のすべてのデータがインポートされる。

数十分ほどでローカルにこのブログと同じものが完成した。

記事中の URL 等もきっちり変換されている。例えば画像リンクであれば、

USERNAME.files.wordpress.com/2012/10 --> newsite.com/wp-contents/uploads/2012/10

等に変換される。大変優秀な移行ツールである。

旧サーバーデータが消えた場合…

万一、旧サーバーのデータがまるごと消えてしまったら、上ように「ツール」「インポート」からメディアデータまで取り込むことは当然できない。この場合は、まず、エクスポートされた XML ファイルの画像リンク等を手動で書き換えておく。

$ sed 's|//USERNAME.files.wordpress.com/|//newsite.com/wordpress/wp-content/uploads/|g' oldsite.xml > newsite.xml

次に、バックアップを取っていたメディアデータ (USERNAME.files.wordpress.com) を新しいサーバーの wordpress/wp-content/uploads 以下に配置する。その上で、管理画面の「ツール」「インポート」で書き換えたファイル (newsite.xml) を選択すれば元通り復元されると思う。

Advertisements

One thought on “WordPress.com のブログをバックアップする

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s