WordPress のファイルバックアップ

WordPress + twitter なモブログをする方も増えてきて、ますます重要になる WordPress のファイルバックアップ。

コアとかプラグイン、テーマはサーバを直接修正していない限りローカル PC のどこかに残っていそうですが、wp-content/uploads とかの画像ファイルはオリジナルがなくなってしまうことも多そうです。

WordPress のブログデータの構成要素は、MySQL のデータと画像などのサイトにアップロードファイルとなりますが、ここは後者のファイルのバックアップお話。 MySQL のバックアップについては以前かいた以下の記事が参考になるかもしれません。

hiromasa.another :o) » Blog Archive » WordPress の MySQL バックアップ

てなわけで、大抵のサーバは ssh の接続がサポートされていますので MySQL のバックアップ関連はこちらで操作するといいかもしれません。 まずは手動のシェル起動によるバックアップ、これがうまくいったら cron にこのシェルを登録してみます。

というわけで、お手軽にファイルもバックアップしたいよね、ということで UNIX の rsync + SSH をつかったバックアップを紹介してみます。 Windows でも cygwin とか使うとできるかもしれません。 🙂

rsync というのは、送り元先のファイルリストを確認して差分でシンクロしてくれる便利なアプリケーションです。

rsync – Wikipedia

rsync は、UNIXシステムにおいて、差分符号化を使ってデータ転送量を最小化し、遠隔地間のファイルディレクトリ同期を行うアプリケーションソフトウェアである。類似のプログラムやプロトコルにはない rsync 独自の特徴として、ミラーサイトとの転送が双方向に高々1回で済む点がある。rsync はディレクトリ内容を表示し、ディレクトリやファイルをコピーできる。オプションでデータ圧縮再帰も指定可能。

WordPress をレンタルサーバにインストールしているとして、、rsync が使える条件は、SSH が接続できることとサーバ側に rsync が入っていることです。 ぼくが使っているコアサーバではOKでした。(後述の siroica さんの記事によると XREA も大丈夫そうです)

また、バックアップ先のクライアントの PC でも rsync と SSH が使える必要があります。 Linux とか BSD とか、たぶん Mac OS X もできるのだと思います。 Windows でも cygwin とかつかうことでできそうです。

とりあえず、コアサバに SSH できる Ubuntu がお手元にあるとすると以下の感じでいけます。

先にファイルを転送する先の current というディレクトリをつくっています。(この名前はなんでもかまいません)

hiromasa@hiromasa-cube:~$ mkdir current
hiromasa@hiromasa-cube:~$ rsync -avz --delete [ユーザ名]@[サーバ名]:[バックアップディレクトリパス]/ ./current/
 
[実際のコマンド(参考)]
hiromasa@hiromasa-cube:~$ rsync -avz --delete another@s8.coreserver.jp:/virtual/another/public_html/ ./current/

rsync [オプション] [送り元] [送り先] が基本的な使い方です。 コアサバ –> ローカル PC です。

逆を指定すると悲惨なことになりますので十分注意してください。

特に –-delete という「消したファイルを消す」というオプションをつけている場合に、空ディレクトリを送り元にしてしまうと、送り先が空っぽになって真っ青になります。。

地雷だらけのrsyncを理解する。 – こせきの技術日記

–deleteは、DESTのディレクトリ指定を間違えると悲惨なことになる。SRCのスラッシュの有無も重要。

同期という技術の特性上、危険なパターンもあるので、よく理解した上で行ってください。

ここではコアサバの public_html 配下をローカルの ./current とういうディレクトリにもってきています。 wp-content/uploads などバックアップしたいところをピンポイントを指定するのも良い方法でしょう。

rsync01

実行するとパスワードをきいてきますので、SSH のログインパスワードを入力します。

で、こんな感じでドヴァーとゴールドな感じでファイルが転送されてきます。(ファイル数が多いときは転送量に注意してください)

ファイル数が多いと時間がかかり、またコアサバの場合途中で切断されてしまう場合があるようですが、そのときは再試行してください。 差分でとってきますので、そのうち全部終わります。

sent 20 bytes  received 1158377 bytes  210617.64 bytes/sec
total size is 549995346  speedup is 474.79

こんなのがでたら転送完了です。

current ディレクトリ下をみてみるとファイルがきているのが分かると思います。 尚、この下のファイルは直接修正などしないほうが良いでしょう。(編集したいときは別な場所にコピーして使いましょう)

で、ある時期がたったらまた同じディレクトリ(current)があるところで rsync コマンドをうてば何も考えずに更新差分のみ取得できます。 この辺が FTP ではできない有利なところです。 🙂 backup.sh などのシェルスクリプトに rsync コマンドを記述しておけば間違えも少なくてよさそうです。

backup.sh

#!/bin/sh
 
rsync -avz --delete another@s8.coreserver.jp:/virtual/another/public_html/ ./current/

取得した current ディレクトリは圧縮して別途保存しておくと履歴バックアップになりますね。

なんてことをやっていると、cron で全部自動でやりたいなぁという欲求がふつふつと。 ということで、siroica さんが rsync + mysqldump + pdumpfs + cron でファイルとMySQL ダンプの自動履歴バックアップをする記事を書かれています!

XREAのサーバーに設置したWordPressを自動バックアップする環境を整える – SharpLab.

みんな大好きWordPress。だからこそ、データが飛んでしまうのはなんとしても避けたいもの。そのためには、常日頃からデータのバックアップを取っておくのが重要なのですが、いちいち手動でバックアップするのは手間なので、なるべく自動化しておきたいものです。バックアップしたいのは次の二つ:アップロードしたファイルとMySQLのダンプ。

玄箱などいえにローカルにサーバがある方は自動化にチャレンジしてみると良いかもしれません。 🙂

軽快なテキストエディタ Geany

Linux など UNIX 系 OS を使っていると、テキストエディタといえば emacs か vi みたいなもんで、いわゆるスクリーンエディタの他の選択肢があまりないように感じます。 ぼくは emacs はなんとか、、レベルでしか使えないのでエディタに関してはこのへんちょっと窮屈だったりもします。

ちなみに、プログラムをかくときは大抵は Eclipse、、、とはいえ言うならば IDE は、たとえば 1時間の全体的なプログラミング作業(コーディングからデバッグから 差分取得、CVS 管理などなど・・・)を 45分に短縮する支援をしてくれるたぐいのものですので、さすがのぼくもワンショットのときはテキストエディタ使います(笑)

そんなテキストエディタの話。

GNOME 標準の gedit はさすがにちょっと機能が低く遅いですし、kate は良いのですがぼくの環境が QT のフォント系と相性が少し悪くちょっと我慢があり、、 なんてことでたまに良さそうなエディタないかなと見てみることがあるのですが、Geavy というエディタがなんだか良さそうだったので試してみました。 🙂

Geany – Wikipedia

GeanyGTK+上の軽量なクロスプラットフォームのテキストエディタであり[2]Scintillaと基本的な統合開発環境 (IDE) 機能をベースとしている。他のパッケージにあまり依存せず、立ち上げ時間が短い設計になっている。WindowsLinuxMac OS X[3]BSDSolarisなど、様々なオペレーティングシステムで動作する。サポートするプログラミング言語としては、C言語JavaJavaScriptPHPHTMLCSSPythonPerlRubyPascalHaskell などがある。

起動して分かるのが明らかに速いということ。 gedit の倍くらいの速度で立ち上がる感じがします。 また利用しているテキストコンポーネントも速い部類だと思います。

Scintilla – Wikipedia

Scintilla(シンティラ)は文書編集機能を提供するオープンソースライブラリであり、ソースコード編集向けの各種機能を備えている。Scintilla をベースとしたスタンドアロンのエディタとして SciTEクロスプラットフォーム)や Notepad++Windows)がある。

gedit とかだと、内部線形リストの持ち方が悪いのか、1行(改行まで)がながーーい行をもつファイルをひらくととたんに遅くなります。 Windows でも Delphi のテキストコンポーネントエディタで同じように遅くなる傾向がありますね。 Geany さんはこの辺もある程度大丈夫のようです。

geany01

まずは左にファイル一覧がおけたり、下にシェルがおけたりするのが便利です。 あと、タブ対応。 タブの順番入れ替えもちょっと凝っていたりしました。

何を隠そうまだまだバージョン 0.18 なんですが、設定も基本的な部分の実装が進んでいるようです。 gedit よりいっぱいあります。 🙂

geany02

Ruby とか Python とかのワンショットスクリプトを書くときに便利と思われるシェル機能。 コンパイルや実行もキーアサインから支援してくれるようです。

geany03

正規表現の検索や grep もいけます。

geany05

geany06

grep は grep を呼んでいるだけですが、標準出力結果からタグジャンプ可能です。

geany07

あと海外製のテキストエディタでは少ないような気がする、タブ改行表示も一応できます。 ただちょっと表示がしょんぼり。。 常に表示はきついかもです。(笑) まぁこの辺はオープンソースということでパッチしちゃえばいいかもです。

geany04

ぼくはあんまり使う癖が実はないのですが、”同一ファイル”の同時分割表示もプラグインを有効化することで可能でした。 結構、常用されている方もまわりで多く見ますので、これは良いかもですね。

geany08

文字コード認識についてはちょっと誤認が多いとの情報もみましたが、ぼくはとりあえず基本 UTF-8 なので大丈夫かな・・・。 一応日本語では、EUC-JP、SHift_JIS、CP932 がメニューに見えました。

日本語といえば Linux版に関しては ATOK(iiimf) をつかうと、インライン(オンザスポット)入力がまだできないようです。 正確に言うと入力カーソル位置はあいますが、別窓あつかいで挿入となります。(この動作なんていうんでしたっけ。。)

なので日本語をたくさんうつ用途にはまだ向かないかもしれません。

あとは矩形選択とキーボードマクロがついてくれるとうれしいなぁぁぁ。 結構な頻度でバージョンもあがっていますし、まだバージョン 0.18 ということで今後に期待したいと思います。 🙂

ちなみに Ubuntu のパッケージはこちら。 9.04 標準はちょっと古いです。

PPA for Geany Developers

Unofficial builds of the Geany editor, plugins, and tools.

とりあえず、ワンショットスクリプトつくるときや、SFTP で直接 WordPress のテーマをかきかえちゃいたいときなんかに呼び出すとかなり良さそうです。 gedit お使いの方がいたら代替えに試してみるといいかもしれません!

GNOME Nautilus からのサーバ接続

多くの Linux ディストリビューションで採用されているデスクトップ環境に GNOME というのがありますが、このパッケージの一つファイルマネージャである Nautilus さんはなかなか便利で、いろんなサーバに接続することができます。

特に接続先が UNIX 系の OS であったりオープンな仕様であるときの親和性は、Windows のエクスプローラよりもやはり高い感じがします。 というわけで、前もちょっと紹介しましたが、現在ぼくがやっている接続を書いてみます。 🙂

tsunagu01

まずはおなじみ SSH。 つなぎ先は、ここコアサーバ。

Nautilus のファイル->サーバへ接続から。 こんな感じで。

tsunagu02

パスワードは接続押下後に聞いてくるので入力します。 管理はパスワードマネージャがよろしくやってくれます。 これで SFTP でファイルがみれるようになります。 普通の FTP より接続安定していると思うので、SSH 使える方はこちらのほうがおすすめです。

さて上のコアサバはパスワード認証の SSH ですが、鍵認証を使いたいときはどうすればいいのでしょうか。 実はここがよく分かっていないのですが(昔は .ssh ディレクトリに鍵いれておくだけでホスト認識してつながってたきがするのですが)、普通にやると下記のようなダイアログでつながらないことがあります。

tsunagu06

そんなときは、とりあえず接続先との鍵交換はすんでいるという前提で以下のコマンドをうって秘密鍵を add してあげてからつなげるといいようです。

ssh-add ~/.ssh/sourceforge.id_dsa (←秘密鍵ファイル)

この後 Nautilus 接続すればつながるようです。 🙂

では次、WebDav。

iPod touch / iPhone にファイルを転送したいときにつかっています。 iPod touch のサーバソフトは Files Lite です。

hiromasa.another :o) » Blog Archive » iPod touch に Files Lite をいれてみる

昨晩、App Store みてたら Files Lite という無料ソフトが面白そうだったのでいれてみました。 いろいろな種類のドキュメントをいっぱいつめてみれるらしい。 なんでも、Microsoft Office ファイルや PDF もみれるらしい。

このたぐいのソフトは WebDav サーバがあがって任意のファイルを転送できます。

tsunagu03

で、Nautilus 側は以下のように。

tsunagu04

これで iPod の中身がみれます。 無線でファイル送信できるので異様に便利です。

tsunagu05

動画とか同期するまでもない動画ファイルとかの場合はこれで送っています。 いちいち、iTunes 立ち上げるのすきじゃないというのもあります。。(笑)

さて、今回は接続設定をダイアログで紹介していますが、場所(URIハンドラ)に直接入力しても接続できます。

sftp://[ユーザ名]@[サーバ名].coreserver.jp/virtual/[ユーザ名]
dav://[ユーザ名]@192.168.0.4:8080/
ftp://[ユーザ名]@192.168.0.10/

こんな感じですね。 ワンショットでつなぐ場合は、手入力したほうが速いでしょう。

よくつかうのは、こんな感じでブックマークの方向で。 🙂

tsunagu07

やっぱり相手が UNIX のときは、こっちも UNIX 系のほうがいろいろ都合がいいことが多いですね。 rsync とかも使えるしですね、むふ。