トップ(最新) | <前 | 次>

nDiki : Unison

Unison

Unison File Synchronizer

  • rsh/SSH/socket を利用した双方向ファイル同期化ツール。WindowsLinux などで使用可能。
  • いつも双方向に同期したい方にはおすすめ。

関連情報

スポンサード リンク

Related term

2003年11月20日 (木)

やっぱ hns このエントリーを含むはてなブックマーク

tDiary に随分傾むいていたのだが。

自分自身の使用としては、

  • tDiary で SUB できない?
  • tDiary で 旬単位表示できない? (月まとめ表示はちょっと大きすぎる気が)
  • tDiary には hns の log.cgi に当たる機能がない?
  • Ruby プログラム、 hack できない (これを機に覚えれば良いのだが)
  • WiKicker との連動コードを簡単に埋め込めなくなる(WiKickerPerl)
  • Unison 導入により hns 関連ファイル管理の整理ができたので、そこら辺が綺麗で気にいった tDiary のメリットが少なくなった。

といった感想。 最初から tDiary だったら問題を感じなかった部分も多いだろう。 慣れの問題。 あとこれから日記システムを提供してあげる予定の Tarebouzuさんに対しては、

  • hns でも tDiary のテーマが使える事が判明した(tdiary-hns-theme 使用)ので、レイアウトの選択肢が広まった
  • hns にも Web インタフェースがあるし
  • hnf 記法の方が、tDiary 記法より簡単 (私が慣れているだけかもしれないが。まぁ教えやすいし。)

といった感想。 で、二転三転したが結局 hns でいこうかと。

hns のセットアップ、theme の入れかえ、mod_rewrite の設定あたりまで終わらせる。 後は、Namazu とかそのあたり。 週末には稼働できるかと。

スポンサード リンク


www.naney.org のファイルを全て Unison で同期 このエントリーを含むはてなブックマーク

www.naney.org 上のコンテンツは、ローカルで一旦構築したファイル(ディレクトリ構造)を rsync で1方向に sync している。

@ しかし細かくみてみると

  • (L) ローカルで xml -> html し、サーバに送るファイル (html/ 以下のファイルなど)
  • (L) ローカル上で直接作成し、サーバに送るファイル (etc/ 以下のファイルなど)
  • (L) ローカルから定期的に送るファイル(webcamの画像など)
  • (S) サーバ上でインストールし、オリジナルがサーバにあるファイル (local/ 以下のファイルなど)
  • (L) サーバ上でインストール後、ローカルにコピーし改変して送るファイル(設定ファイルなど)
  • (S) サーバ上で生成されるファイル (Wikiデータベース、ログなど。var/ 以下)

とかなりかなり混在中。(L) はローカルにマスターがあるもの。(S) はサーバにマスターがあるもの。

できるだけ(L)と(S)を分離するようにはしているのだが(例えばサーバでインストールしたものの中で手元にコピーして編集したファイルは別ディレクトリにまとめておいて、サーバ上ではそちらへ symbolic link を張るとか)、これはこれで訳がわからなくなってしまう訳で。 rsync の実行も --exclude オプションがからみあい、--delete を付けられたり付けられなかったりとちょっとトリッキーな状態。

@ Unison で同期

日記システム関連の導入検討の前に、一旦ここら辺を整理し簡略化したい。 ということで、これからは Unison を使って www.naney.org とローカルを基本的に同期させてしまう事にした。

これならばどれがサーバオリジナルのファイルで、どれがローカルがオリジナルのファイルか迷わなくて済むようになると。

で、設定。ローカルの /usr/local/www.naney.org ディレクトリで同期させる事にする(ディレクトリ名は実際は違うところ)。 ローカルホストの ~/.unison/naneyorg.prf に

 times = true

 # Roots
 root = /usr/local/www.naney.org
 root = ssh://www.naney.org//home/naney

 # ignore backup
 ignore = Name *~
 ignore = Name .*~

 # ignore files
 ignore = Path .cpan
 ignore = Path .union
 ignore = Path var/log/access_log

 # hns
 ignore = Name referer_log
 ignore = Name referer_batta_log

と書く(ignore は一部抜粋。ディレクトリ等は実際は微妙に違う)。 で、

 unison naneyorg

で同期。 同期処理中に、(ログファイルなど)書き換わってしまうものがあるとそれを含むディレクトリの同期がごっそり abort させられるようなので、ignore を調整しつつ何回か実行して完全に同期をかける。

これで、ローカル・サーバどちらでファイルを書き換えてもOK。

rsync よりパスの指定が簡単だし(rsync はパス指定最後の / の有り・無しでの挙動の違いをいつも忘れてしまうので怖い)、なかなか使い勝手が良いかも。

ちなみにローカルで xml -> html しているファイル群だけは一旦別ディレクトリに生成してから、ローカルの www.naney.org 同期ディレクトリへ rsync で一方向 sync するようにしておいた(その後サーバと同期するという2段階処理)。

@ はまり所

最初 -times オプションを指定していなかったので、サーバからローカルへ同期したファイルの更新時刻が全て現在のものになってしまった。 後から -times オプションを指定して unison しなおすと、全部再同期しようとしてしまうようだ。 よくわからないので、一旦同期ディレクトリを消して全部取り直し。


[ 11月20日全て ]

2003年12月2日 (火)

Unison での日本語処理 このエントリーを含むはてなブックマーク

Unison がなかなかよろしいので、ちょこっと実験。

普通に使えると考えてよいのかな*1 ちなみに GUI版はしょぼかった。 コマンドライン版で充分。

*1自分では日本語ファイル名は使わないけれど、他人のファイルを扱う時とかに問題が発生しないと助かる。

@ remote <-> remote

remote(ssh) <-> remote(ssh) はさすがに駄目か。


[ 12月2日全て ]

2003年12月5日 (金)

[ Debian ] DynaBook SS -> X31 このエントリーを含むはてなブックマーク

作業中は、両方同時に使用する事になるのでホームディレクトリを Unison で同期。 DynaBook SSの方はメモリ192MBなのであるが、ホームディレクトリをまるごと転送するとスワッピング発生しまくりで、かなり遅い(それに加えて使用しているのが3C589なので10Base-Tだし)。 同期するファイル群の絶対的なファイル数はそれほどメモリ使用量には関係ないのかな。非同期になっているファイル数に応じてメモリを消費している感じ。-path で何回かに分割すれば良いようだ。

他、/etc、/usr/local、/var の下の一部、/home の下の一部を X31 の /usr/local/ss2 以下に rsync。 もともと DynaBook SS の /usr/local にはさらに前の Debian BOX の 退避ファイルを残してあるので、

 /usr/local
   |
   +- ss2
       |
       +- usr-local
           |
           +- ss
              |
              +- 2代前のDebianBOXの
                 /usr/localファイル

なんて事になっている。 そろそろあきらかに必要のないファイルを削除しないといかんな。

とにかく、ほぼ必要なファイルを転送終了。 qmailMew の設定が無事 X31 で動いたので、今日からこちらで作業する事にする。


[ 12月5日全て ]

2003年12月31日 (水)

私的10大ニュース2003 このエントリーを含むはてなブックマーク

今年の大事件、マイブームなど。

@ [web] WiKicker 公開

オリジナル WikiEngine 「WiKicker」を公開し、 www.naney.org での運用を開始。 機能追加、負荷軽減など定期的にメンテナンスを継続中。 今年も1年 Wiki の年だった。

12月からは WiKicker ベースの日記システムDiKicker」の開発も開始。

@ [comp] cool programs

@ [net] ADSLトラブル

モデム

春の数ヶ月間悩まされ続けた。 一度常時接続に慣れてしまうと、もう戻れない。 結局モデムの故障。 その間「@FreeD」も契約してみたが、ADSL復旧に合わせて解約。

P-in Free 1P

@ [comp] 適応型ソフトウェア開発

仕事でのソフトウェアプロジェクトでの適用を開始しはじめてみた。

@ [comp] ThinkPad X31 2672-PHJ

ThinkPad

3年ぶりのメインノート PC の買い換えPentium M 1.6GHz + 1GBメモリ。 また3年は頑張ってもらわないと。

@ [camera] TC-1GR1s修理

TC-1 GR1s

愛用のTC-1が故障したため修理修理費16,300円也

GR1s修理

新規に購入したのは、Ai Nikkor 45mm F2.8P(10月12日)、 F3接眼補助レンズドンケ F-2 ぐらい。 あまり散財しなかった。

接眼補助レンズ ドンケ F-2 Ai Nikkor 45mm F2.8P

今年は撮影枚数が伸びず。

近所のミニラボが閉店したのも痛い。

@ [misc] レザークラフト

昨年買ったままだったレザークラフトセットを使ってレザークラフトを始めた。 パスケース、LEDフラッシュライトケース x 2、ツールナイフケース x 2、露出計ケース などを製作。 最近は何も作ってないな。 また何か作りたい。

LEATHERMAN MICRA 革ケース ツインメイトカバー SureFire エクゼクティブ・エリート E1e + KL1 レザーケース マグライト ソリテールケース Leatherman juice S2 レザーケース Arc-LS 用レザーケース

@ [misc] LEDフラッシュライト

LEDフラッシュライトに興味を持つ。 SureFire E1e + KL1ARC-AAAArc LSL-P などを購入。

SureFire E1E-HA Arc-AAA Arc LSL-P


[ 12月31日全て ]

2004年2月13日 (金)

過去の今ごろ このエントリーを含むはてなブックマーク

過去の2月13日より。

  • TRAMP 初体験
    • Unisonを使うようになってからローカル・リモートのどちらで編集しても気にせず同期できるので TRAMP の使い勝手も良くなった。けど、まぁそんなにしょっちゅうは使わないけど。

[ 2月13日全て ]

2004年6月7日 (月)

Unison展示会機器のセットアップ このエントリーを含むはてなブックマーク

来週の展示会の準備として、数台のWindows BOXにソフトウェアやらデータやらをセットアップ。 まだ確定していないデータなどもあるので、こまめに同期する必要あり。

ということで USB メモリ

  • unison.exe
  • ブートストラップバッチファイル
    • 共通ディレクトリ作成バッチファイル
    • USB メモリと共通ディレクトリのbinを同期させるための Unison 実行バッチファイル
    • 共通ディレクトリをUnisonで同期するためのバッチファイル (クライアント用と daemon 用)

を書き込む。

1台目(マスター):

  1. ブートストラップ関連を USB メモリから共通ディレクトリへ
  2. 共通ディレクトリ下にデータをセットアップ
  3. ブートストラップ関連の変更があれば、共通ディレクトリから USB メモリへ同期

2台目以降:

  1. ブートストラップ関連を USB メモリから共通ディレクトリへ
  2. マスターPCと同期

後はどっかで変更したら適宜同期。

Unisonインストール不要で exe 1個で動くのでこういう時に便利。 Windows だと -fastcheck true にしないとかなり遅いので注意。

時限的な作業で sshd を入れるのもなんなので Unison の Socket メソッドを使っているのだが、この方法だとまったく認証が無いのでちょっと気持ち悪い。 Socket モードでも rsync 程度の認証機能ぐらいは欲しい。


[ 6月7日全て ]

2004年6月11日 (金)

Internet Connection Firewall (ICF) このエントリーを含むはてなブックマーク

Unison + Zebedee がらみで、自分が使っている Windows XP の ICF を試してみる。

「ローカルエリア接続のプロパティ」で「インターネット接続ファイアウォール」をチェック。

このままだとファイル共有できないので(そのホストへだけでなく、他のホストの共有ディレクトリへのアクセスも駄目だった)同「設定...」からサービスを追加。

  • TCP 445 (CIFS)
  • TCP 137,139 (NetBIOS)
  • UPD 137,138 (NetBIOS)

Unison + Zebedee このエントリーを含むはてなブックマーク

記事「Unison で展示会機器のセットアップ」に、

wtnabe 2004-06-10 15:51:09 rsync もまともな認証とは呼べないような気がしますが。。。同じことをするなら tcpwrapper を使うって形になるんでしょうけど、Zebedee などで認証を掛けるともっと融通が利いてなおかつセキュアなんじゃないでしょうか。

という貴重なコメントをいただく。

Zebedee 最近使ってなかったな。ホスティングサーバ(FreeBSD)がSSH接続を提供してくれていなかった時は、Linux BOX からZebedee 経由で telnet したりmirror したりしていた。

ちなみに今回の用途では、通信路の暗号化はあまり重視していない(社内ネットワークで、対象ファイルはもともと皆が閲覧できるものだし、端末の前にも座れるから)。

@ Unison Soket メソッドでのサーバ側の問題

  • 認証なし
  • 接続ホストによるアクセスコントロール不可
  • 同期対象となるローカルファイルの制限不可。

というのが問題。

c:ドライブ全体(だけでなく全てのドライブ)をパスワード無しで「読み書き可能なWindowsファイル共有」しているような感じであり、気持ち悪い。

@ rsync サーバの認証

  • パスワード認証。平文では流れない。パスワードファイルは自体は平文で管理。
  • 接続ホストによるアクセスコントロール可。
  • 同期対象となるローカルファイル/ディレクトリは指定される。

平文でパスワードが流れることはないし、Unison でもこれぐらいの認証ができれば今回の用途では充分という感じ。

@ Unison + Zebedee

Windows 同士だと結局一方は Unison を Socket メソッドで起動しなければならない。 そのポートへは認証有のZebedeeトンネルで接続するとして、外部からは直接アクセスできないようにしなければならないので面倒。

Zebedee 自体はナイスなプログラムではあるのだが、Unison と組み合わせには使えないかな。 普段使いには Unison + SSH だし。

@ Windows

本家に Windows 版もあるのか。 インストーラの形になっているがインストールされる zebedee.exe は単体でも動く。 Unison との連携は別にしても、入れておいて損はないのでこれもUSBメモリにいれておこう。


[ 6月11日全て ]

2004年7月31日 (土)

cwRsync このエントリーを含むはてなブックマーク

Windows でのファイルの同期には Unison を使ったりしているのだが双方向むけのものなので、目的によっては向かない事もある。

やっぱり rsync も使いたい。かといって Cygwinインストールするのも面倒だし。

で探してみたところ cwRsync というのを発見。 これも Cygwin 上で動くものなのだが、rsync, ssh, ssh-keygen と cygwin1.dll 等必要最低限のDLL だけがパッケージされていて気軽にインストールできるようになっている。

exe 1個で済む Unison ほど扱いやすくはないが、Cygwin を1から入れるよりはずっと楽。

 daemon-mode protocol:
 rsync -rv rsync://rsync.samba.org/ftp/unpacked/rsync/ .

 ローカル:
 rsync -rv /usr/local/aaa .

 ローカル(ドライブ指定):
 rsync -rv /cygdrive/c/usr/local/aaa .

 リモート:
 rsync -e ssh -v www.example.com:/home/naney/a.txt .

などの動作を確認。ファイル共有しているリモートファイルのUNCによる指定はうまくいかない(Cygwin ではどうやって指定する?)が、ネットワークドライブ割り当てをすればアクセスできる。


[ 7月31日全て ]

2004年8月3日 (火)

UnisonWindowsのローカルディレクトリとリモートの共有フォルダ間の同期 このエントリーを含むはてなブックマーク

オフィスのPC上のホームディレクトリを別のWindows BOX にミラーしておくのに DirSync (ディルシンク)を利用している。 最近ちょっとさぼっていたミラー作業を、今回は実験をかねて Unison でやってみた。

Windows 間なので今回は、共有フォルダに直接同期。

遅い。

オプションで -fastcheck true を指定しても、ファイル自体のスキャンは実行されるのか。10GBオーバーのファイル群の同期をこの方法で取ると、リモートのファイルのスキャンのために結局全て1度転送が起きることになる(同期の必要なものはまた転送が起きる)。

転送が始まってからも共有フォルダ内での renaming が Permission denied で失敗したりするしどうもよろしくない。

ということ共有フォルダを使った Unison はいまいち。 やはり規模が大きい時には、サーバ側でも Unison が動く形でないと駄目だな。

@ 追記 (2004年8月4日)

全部転送される旨がマニュアルに書いてあった。

(However, running Unison this way is only a good idea if the remote host is reached by a very fast network connection, since the full contents of every file in the remote replica will have to be transferred to the local machine to detect updates.)


[ 8月3日全て ]

2004年8月5日 (木)

OpenSSH for Windows このエントリーを含むはてなブックマーク

やはり Windows - WindowsUnison を使う事に未練がある。 リモートの Windows BOX で sshd をたてればなんとかなる?

ということで OpenSSH for Windows

Cygwin の中で必要なものだけを抜き出したパッケージ。 cwRsync と同じタイプ。

Windows XP Home Edition SP1 にインストーラインストール後、説明どおり group と passwd を作成。 sshd をサービスとして開始する。 Internet Connection Firewall の設定を変更して22番ポートを開ける。

これで Linux BOX からSSH接続成功。

しかしなんか変なシェルで使いづらい。 またコマンドが実行に失敗してエラーモーダルダイアログが出る時は sshd が動いているPCの画面に表示される。SSHクライアント側からは知るよしもないし、ボタンを押すすべもない。

うーん。不便。


[ 8月5日全て ]

スポンサード リンク

■よく検索されるキーワード

perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 15.415279s / load averages: 0.12, 0.12, 0.14
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)