前回に引き続きまして、Web サイトいじりのための Ubuntu (その2)です。 WordPress 個人ブログなどをレンタルサーバに持っている方向けの、Ubuntu Tips。 前回は SSH でレンタルサーバに鍵認証で接続して、Nautilus と統合までしましたので、その次に進んでみます。 🙂
hiromasa.another :o)» Blog Archive » Web サイトいじりのための Ubuntu (その1)
ここみたいな個人 WordPress サイト(レンタルサーバのPHPアプリ)をいじる感じ向けの Ubuntu Tips を書いていこうと思います。 そうじゃないのも混ざってくるかもですがよろしくおつきあいを。
Linux を使っていると GUI と CUI のハイブリットが使えて結構便利ですが、GNOME の場合、Nautilus ファイルマネージャに以下の拡張をいれると表示ディレクトリを cd することなく端末に開いてくれるようになり、両利用が使いやすくなります。
後で使いますので、とりあえずいれておきましょう。 🙂
sudo apt-get install nautilus-open-terminal
さて、今回のテーマはレンタルサーバのファイル編集。
前回 SSH で接続しましたので、Nautilus ファイルマネージャからローカルファイルを転送できるようになりましたが、実は Nautilus はリモート側のファイルを直接編集することができます。
Nautilus の SSH 接続は内部的に Linux の FUSE (Filesystem in Userspace) と GNOME の gvfs で実装されていますが、これはリモートコンピュータをローカルディレクトリにマッピングしている感じの動作になります。 ゆえに、そこのファイルをアプリで書き換えるとうまいことリモートが書き換わります。
理屈は抜きに実践は簡単。 普通にレンタルサーバのディレクトリを Nautilus で開いて…
こうですら。 いちいちローカルにファイル落として編集後転送し直す必要はありません。
たとえば Geany テキストエディタで編集して保存すればそれだけでレンタルサーバ側が更新できます。 ローカルでの確認の必要ないちょいなおしの場合、急ぎの場合に非常に便利です。
# ぼくの環境だけかもですが Ubuntu 10.04 のときは保存後ファイルが 0byte になる不具合がでたことがあるので、初めてやるときは一応バックアップとってからやってください。 10.10 では問題ないようです。
さてこんなことやっていると、サーバ側がマスターになりはじめ何がなんだかになってしまいますが、UNIX の rsync というコマンドを使うとリモート –> ローカルに同期コピーしておくことができます。
これは wp-content 配下の画像ファイルなどのバックアップにも有効ですので、たまに実行しておくとよいです。
まずはローカルのどこかにディレクトリを作成して以下のファイル構成にします。 current ディレクトリは空です。
backup.sh の内容を以下のように作成します。
#!/bin/sh
rsync -avz --delete [ユーザ名]@[接続先ホスト名]:/[バックアップするディレクトリ]/ ./current/
コアサーバ/XREA 系であればこんなかんじです。 最後のスラッシュとか気をつけてください。 ぼくは面倒なので public_html 配下をフルバックアップとっていますが、wp-content の下だけでもいいかもしれません。
rsync -avz --delete another@s8.coreserver.jp:/virtual/another/public_html/ ./current/
できたら、backup.sh に実行権限をつけます。「プログラムとして実行できる。」
でもって、Nautilus から先にインストールした「端末の中で開く」を行って、
ターミナルをひらいて、、
./backup.sh
これで、ドヴァーっとファイルがリモートから転送されてきます。 ログイン認証は、前回の鍵認証をつかってくれます。 初回はホスト登録をきいてくるかもしれないので、”yes” してください。
初回なのでリモートファイルが全部転送されてきます。 この場合コアサバとかだと転送制限かたまにとまりますので、何回か試行します。 差分で持ってきますのでそのうち error なしで終わるはずです。
エラーの場合。 rsync error の文字列がみえます。
rsync: connection unexpectedly closed (255369687 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [receiver=3.0.7]
rsync: connection unexpectedly closed (1345764 bytes received so far) [generator]
rsync error: unexplained error (code 255) at io.c(601) [generator=3.0.7]
うまくいった場合。
sent 836 bytes received 1668777 bytes 90249.35 bytes/sec
total size is 1139108950 speedup is 682.26
一度全部取得すれば、あとは差分でとってくれますのでたまに実行してあげるとファイルバックアップになってよいでしょう。 🙂
WordPress のバージョンアップ前など、必要に応じて current を別にコピーしておくとそちからバージョンアップ前に復元できます。(もちろんその前に DB も戻しが必要がありますね)
あとこの current ディレクトリはあくまでバックアップとしてここのファイルは編集しないほうがよいでしょう。 編集する場合は他にコピーしてからという方向で。
また、Ubuntu の場合、Ubuntu One 監視ディレクトリでこの操作を行うと、自動的にクラウド側にさらにバックアップできることになります。 Dropbox Linux 版でも同様にできるのかな。 便利ですね。
というわけで、以上その 2 でした。 次は、subversion についてか、xampp のインストールか、、ちょっと古くてよければ関連記事(↓)にでていると思いますので先にそちらを。 😀
ぼのを 「ちょっぱーを寝かせてきます。」
W W ( '∇')(´—`) ヽ| P |人| P |ノ