Ruby/Qte普及委員会 pdumpfsでインクリメンタルバックアップ

XREAAD
Create  Edit  Diff  FrontPage  Index  Search  Changes  History  RSS  Login

番外編

pdumpfs は、高林哲氏が開発したバックアップツールですが、Rubyで書かれています。

PCとLinuxZaurusに同じバージョンのRubyと、OpenSSH を入れておけば、LinuxZaurus のバックアップを毎日とることができます。

準備

CVS版のpdumpfs

pdumpfsのサイト から、CVS版のpdumpfsを入手します。sshによるリモートバックアップに対応しているものです。

バックアップ用のハードディスク

Windowsの場合、NTFSフォーマットされたハードディスクをバックアップ領域に使います。

同一バージョンのRuby

母艦のPCとLinuxZaurusで、同一バージョンのRubyをインストールしておきます。

私は、PC側 (Windows XP) はcygwin版 1.8.0 を、Rubyも1.8.0を (Ruby1.6と1.8の共存 の要領で) インストールしておきました。

Rubyのバージョンが違うと、バックアップに失敗します。Marshalモジュールがダンプするオブジェクトに互換性がないためです。

OpenSSH

PCとザウルスがsshで接続できるようにしておきます ((Windowsなら、ザウルスドライブ (samba) 経由でもできるかもしれません。ただ、そうしたらLinuxZaurusでRubyを使っていることにはならないので……))。

私は、PC側は Cygwin の openssh パッケージを、LinuxZaurus側は ZSIで配布されているもの を使用しています。

ザウルス側がサーバ、PC側がクライアントとなります。PC側の公開鍵ファイルをザウルス側に登録しておきます。

横道に逸れますが、Windowsの場合、win-ssh-askpass を入れておくと、毎回パスフレーズを入力しなくて済むので楽です。~/.ssh/config も適切に編集しておいて、

 ssh sla300
 (または ssh zaurus)

だけですぐに入れるようにしておくとよいでしょう。

インストール

PC側

パスの通ったディレクトリにpdumpfsを置いて、実行できるようにしておきます。

LinuxZaurus側

先頭行の修正

先頭行のrubyのフルパスを修正しておきます。

pdumpfsを置くパス

ssh 経由で実行する関係上、/usr/bin に置いておいたほうがいいでしょう。

コマンドラインオプションで別のパスを指定できるようになっていますが、覚えられないので。

rubyがsshから実行できるか確認する。

ssh sla300 /home/QtPalmtop/bin/ruby -v

を実行して、ssh経由でrubyが実行できることを確認します。

私のところでは、

/opt/QtPalmtop/bin/ruby-1.8: error while loading shared libraries:
 libruby.so.1.8: cannot load shared object file: No such file or directory

というエラーが出ましたが、ldconfig を実行すれば直りました。 (ldconfigは、dev_img-1.3のものを使った…のかな?)

バックアップの実行

pdumpfs sla300:/usr/mnt.rom/card /backup/sd

で、SDカードの内容のフルバックアップが取れます。

コメント

{{comment}}
Last modified:2012/01/29 16:00:49
Keyword(s):
References:[番外編]