トップ(最新) | <前

nDiki : Unison

Unison

Unison File Synchronizer

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

関連情報

スポンサード リンク

Related term

2004年8月10日 (火)

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

前回の続き

ホーム以下を全て1発で同期しようとすると初回が非常に時間がかかる。

 /home/naney //server/home/naney -fastcheck true -path hoge

の hoge のところを /home/naney、 //server/home/naney 以下にそれぞれあるファイル・ディレクトリを指定して実行(スクリプトを書いてまわす)。

これで一旦 .unison ディレクトリ以下に管理情報ができてしまえば、

 /home/naney //server/home/naney -fastcheck true

でも実用的な速度が出る事を確認。

それから -times オプションを指定してファイルの最終更新時刻を同期しようとすると、同期対象の中に read-only ファイルがあるとはまる。 1発目の同期はできるが、2回目で utime 変更エラーが出る。

スポンサード リンク


[ 8月10日全て ]

2004年9月3日 (金)

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

以前cwRsyncを試した時の記事に今井さんからコメントをいただいた。

cwRsyncの場合、UNC パスは「\」を「/」に読み替えれば使えますよ。 例えば、「\\remote\share\dir1」は「//remote/share/dir1」となります。

ということなので早速試してみる。 ほんとだ。

Unison共有フォルダ内での renaming で Permission denied を出して失敗するので、ちょっと遅くなるけどやっぱり rsyncミラーするようにしよう。


[ 9月3日全て ]

2005年5月4日 (水)

FreeBSD 上の Unison をアップグレード このエントリーを含むはてなブックマーク

すこし前に sidUnison が 2.10.2 になったのにともなって、FreeBSD なホスティングサーバ上の Unison (2.9.1) と同期できなくなってしまった。

ということでビルドしなおし。 まずは Ocaml から

 wget http://caml.inria.fr/pub/distrib/ocaml-3.08/ocaml-3.08.3.tar.gz
 tar zxvf ocaml-3.08.3.tar.gz
 cd ocaml-3.08.3
 ./configure -prefix /tmp/naney
 make world
 make opt
 make install

でその Ocaml を使って Unisonビルド

 tar zxvf unison-2.10.2.tar.gz
 cd unison-2.10.2
 PATH=$PATH:/tmp/naney/bin
 gmake UISTYLE=text
 ./unison -version
 cp -p unison $HOME/local/bin

[ 5月4日全て ]

2005年5月16日 (月)

はてなブックマーク上の最新ブックマークnDiki このエントリーを含むはてなブックマーク

自分でタグ付けできないのでどうなのかと思っていたはてなブックマークであるが、気がつけば登録したブックマークももうすぐ1500。

タグ付けできない部分は、検索機能である程度カバー。 お気に入り機能のおかげで旬のネタ収集もできる。 なんだかんだいっても、さすが「はてな」という感じ。

日々登録しているブックマークを活用したいということで RSS を利用して、nDiki に表示してみることにした。 出勤前のちょっとした時間で Perl スクリプトとしてささっと実装。

  • ローカルPCで以下の作業を行うスクリプトを書く
    1. LWP::Simple を使用して RSS を取得
    2. XML::RSS で parse() したあと、items から HTMLフラグメントを生成
    3. nDiki のフッタに挿入
  • cron で1時間毎に
    1. 上記スクリプトを走らせ、フッタファイルを書き換え
    2. フッタファイルを UnisonWeb サーバアップロード

という形で実現。

  • DiKicker にはフッタファイルに別のファイルをインクルードする機能がないので、フッタを書き換えてしまえ。
  • サーバに XML::RSS を入れるのが面倒なので、ローカルPCでやってしまえ。どうせブックマークが更新されるのは、そのPCを使っている時だけだから。

という手ぬきであっさり実装。


[ 5月16日全て ]

2006年6月15日 (木)

SSH port forwarding 経由での Unison を用いたファイル同期 このエントリーを含むはてなブックマーク

ノート PC ととあるプライベートネットワーク上のサーバとで Unison を使って同期しているディレクトリを、プライベートネットーワークの外から SSH 経由で port forwarding して同期できるようにしたくなった。

 今
 [ノート PC] -------------------- [サーバ]
               Unison with SSH   192.168.0.x

 これから
 [ノート PC] -------------------- [サーバ]
               Unison with SSH   192.168.0.x

 [ノート PC] -- [ゲートウェイ] -- [サーバ]
               gw.example.com    192.168.0.x
               Unison with SSH

@ 現在のノート PC 上での設定

 times = true
 root = /home/naney/somedir
 root = ssh://192.168.0.x//home/naney/somedir

 ignore = Name *~
 ignore = Name .*~
 ...

が 設定ファイル ~/.unison/server.prf の内容。

 unison server [options]

で同期している。

@ SSH port forwarding 経由で同期

新しくノート PC 上に設定ファイル ~/.unison/serverremote.prf を作成する

 times = true
 root = /home/naney/somedir
 root = ssh://localhost//home/naney/somedir
 rootalias = ssh://localhost//home/naney/somedir -> ssh://192.168.0.x//home/naney/somedir
 sshargs = -p 8022 -o HostKeyAlias=192.168.0.x

 ignore = Name *~
 ignore = Name .*~
 ...

SSH port forwarding を開いてから、上の設定ファイルを使って同期するシェルスクリプト unison-serverremote を書く

 #!/bin/sh
 ssh -f -L 8022:192.168.0.x:22 gw.example.com sleep 10
 unison serverremote $@

これで

 unison-serverremote

で、SSH port forwarding 経由で同期できるようになった。


[ 6月15日全て ]

2006年12月14日 (木)

TrueCryptUSB メモリWindowsLinux からアクセスできる仮想暗号化ドライブを このエントリーを含むはてなブックマーク

USB メモリといえば、他人の PC とデータをやりとりする際によく使われるメディアだ。

最近どんどん大容量化していることもあり、ついいろいろなデータを入れっぱなしにしがち。

  • 「ファイルをもらうのに渡した USB メモリを、受け取って確認したら見られたくなかったファイルが入ったままだった。」
  • USB メモリにファイル入れて渡すのだけれど、今入っている見られたくないファイルを消すの面倒だな。後でまた入れておきたいし。」
  • 「紛失した時が心配」

など、そのまま入れておくのは不安なファイルもある。

ということでやっぱりいくつかのファイルは暗号化しておきたい。さて何かよい暗号ソフトウェアはないだろうか。

で調べたところ TrueCrypt が有名らしい。WindowsLinux の両方から使えるというのが良い。

ということで試してみた。

@ Linux

ライセンスの関係で Debian GNU/Linux には無いので、ビルドしてインストールする。

@ ビルド

まずはビルド

 tar zxvf truecrypt-4.2a-source-code.tar.gz
 cd truecrypt-4.2a/Linux
 fakeroot ./build.sh
@ インストール

次にインストール。apt-get install dmsetup してから ./install.sh を実行する。

 # ./install.sh
 Checking installation requirements...
 Testing truecrypt... Done.

 Install binaries to [/usr/bin]:
 Install man page to [/usr/share/man]:
 Install user guide and kernel module to [/usr/share/truecrypt]:
 Allow non-admin users to run TrueCrypt [y/N]: y
 Installing kernel module... Done.
 Installing truecrypt to /usr/bin... Done.
 Installing man page to /usr/share/man/man1... Done.
 Installing user guide to /usr/share/truecrypt/doc... Done.
 Installing backup kernel module to /usr/share/truecrypt/kernel... Done.
@ 仮想ドライブボリュームファイルを作成

ここからは実際の利用。まず最初にボリュームファイルを作成する。

 $ truecrypt -c vol.tc
 Volume type:
  1) Normal
  2) Hidden
 Select [1]:

 Filesystem:
  1) FAT
  2) None
 Select [1]:

 Enter volume size (bytes - size/sizeK/sizeM/sizeG): 128M

 Hash algorithm:
  1) RIPEMD-160
  2) SHA-1
  3) Whirlpool
 Select [1]:

 Encryption algorithm:
  1) AES
  2) Blowfish
  3) CAST5
  4) Serpent
  5) Triple DES
  6) Twofish
  7) AES-Twofish
  8) AES-Twofish-Serpent
  9) Serpent-AES
 10) Serpent-Twofish-AES
 11) Twofish-Serpent
 Select [1]:

 Enter password for new volume 'vol.tc':
 Re-enter password:

 Enter keyfile path [none]:

 TrueCrypt will now collect random data.

 Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]:

 Please move the mouse randomly until the required amount of data is captured...
 Mouse data captured: 100%

 Done: 125.85 MB  Speed: 15.66 MB/s  Left: 0:00:00
 Volume created.

基本的にはデフォルトで OK。確保容量とパスワードはそれぞれ決めて入力する。

@ 仮想ドライブをマウントしてみる

マウントポイントを作成してマウントする。 自分の場合ロケールを ja_JP.UTF-8 にしているので、日本語ファイル名を読み書きするために -M utf8 しておく必要がある。

 cd
 mkdir mnt
 truecrypt -M utf8,fmask=133 -u vol.tc mnt         # マウント
 Enter password for '/home/naney/vol.tc': # パスワード入力

マウントができたら後は普通に読み書きができる。読み書きが終わったら、truecrypt -d でアンマウント。

 truecrypt -l         # マウントされているもののリスト
 truecrypt -d mnt     # アンマウント
@ Windows

Windows 版は truecrypt-4.2a.zip を展開して、中に含まれているインストーラを使ってインストール

TrueCrypt を起動して、先ほど作成したボリュームファイルとつけたいドライブ名を指定してマウントすると、うまく中身を読み書きすることができた。

@ トラベラーモード

また TrueCrypt にはトラベラーモードというものがある。 メニューから [Tools] -> [Traveller Disk Setup] を実行して、指定したいメディア(ディレクトリ)に、インストールせずに実行するのに必要なファイル群を配置することができる(オプションで autorun.inf を作ることも可能)。

これを実行して USB メモリTrueCrypt を入れておけば、TrueCryptインストールしていない Windows PC 上でも TrueCrypt をトラベラーモードで実行してマウントできるようになる (ただし、管理者権限が必要)。

@ これから

母艦である Linux BOX からアクセスできるというのが便利。 Linux BOX に USB メモリを挿した後、truecrypt でマウントして Unison で同期してアンマウントまでの一連の処理を流れ作業でできるようにしたい。


[ 12月14日全て ]

2007年1月6日 (土)

connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続 このエントリーを含むはてなブックマーク

以前社外から社内 Web サイトへのアクセスは autossh + FoxyProxy を使って SOCKS 経由で直接できるように設定した (記事)。 また UnisonSubversion もそれぞれ SSH port forwarding 経由で直接アクセスできるようにしてある (Unison の記事Subversion の記事)。

しかし社外から社内サーバへの SSH 接続(やファイル転送)は、以前として一旦中継ホストに接続(転送)してから再度接続(転送)していて面倒であった。

調べたところ Shun-ichi GOTO氏の SSH プロキシコマンド connect.c を使うと SOCKS サーバ経由で直接接続できるようなので設定してみた。

 [クライアント:8090] -- SOCKS -- [ゲートウェイ] -- [社内サーバ]
                                 gw.example.com    192.168.1.x

@ インストール

Debian なので apt-get で。

 apt-get install connect-proxy

@ SSH の設定

~/.ssh/config に以下の行を追加。

 Host 192.168.1.*
   ProxyCommand /usr/bin/connect-proxy -S localhost:8090 %h %p

192.168.1.* に接続する際は、connect-proxy を使ってローカルホストの 8090 ポートの SOCKS を通るようにする設定。

@ SSHSOCKS サーバにする

autossh を使って SSHSOCKS サーバを立てる

 autossh -N -f -D8090 gw.example.com

これで準備 OK。

@ 使ってみる

@ SSH 接続
 ssh 192.168.1.x

で接続を確認。

@ Konqueror (KDE)
 fish://192.168.1.x/

で直接ブラウズ、読み書き可能なことを確認。

@ Unison

普通に 192.168.1.x と同期できることを確認。

@ CVS

普通に 192.168.1.x 上のリポジトリに対して cvs update できることを確認

@ Subversion

普通に 192.168.1.x 上のリポジトリに対して svn update をかけるとアップデートし終わって最後に

 FATAL: output (local) failed, errno=32

というエラーがでる。

@ 便利

Subversion だけちょっと気がかりだれど、その他はうまく行っている感じ。

これでかなり手軽に接続、転送できるようになった。 便利、便利。


[ 1月6日全て ]

2007年12月23日 (日)

aufs を使って Web サイトのドラフト作成する このエントリーを含むはてなブックマーク

この nDiki はローカル PC 上で Emacs で記事ファイルを書き、出来上がったら UnisonWeb サーバと同期させる形でアップロード・公開している。

この方法で一つ問題なのは「書きかけの記事ファイル」の扱いが面倒なこと。 書きかけの記事ファイルがある状態で Web サーバと同期するとそれが公開されてしまうのでまずい。しかし完成している記事ファイルがあるならばそちらは同期して順次公開したい。 同期する時には書きかけの記事ファイルを退避させればいいのだが、思いっきり面倒。

ということで手元で公開用 (Web サーバ と同期用)のディレクトリツリーと、ドラフト用(ローカルの Web サーバでのレビュー用)のディレクトリツリーを分けられるようにすることにした。 この2つのディレクトリツリーの差分となる草稿・更新ファイルは aufs を使うことで簡単に管理することができる。

@ aufs

aufs は stackable unification filesystem の一つ。 同様なものとしては UnionFS がある。 UnionFS よりも aufs の方が評判が良いようなので今回は aufs を使うことにした。

aufs では複数のディレクトリ(ブランチと呼ぶ)をオーバーレイさせて、1つのディレクトリとして扱うことができる。 公開用ディレクトリツリーに、ドラフト用ディレクトリツリーをオーバーレイさせることで、元のディレクトリには変更を加えることなく透過的に変更できる仮想的なディレクトリツリーを作ることができる。

@ aufsインストール

Debian GNU/Linux sid へはkernel 再構築とあわせて module-assistant でインストールした。

@ マウント

以下のように3つのディレクトリを作ってマウントする。

/home/naney/www.naney.org
公開用ディレクトリツリー。本番モノ。公開サーバと同期する。
/home/naney/draft.naney.org
草稿や修正されたファイルが書き込まれるディレクトリツリー。
/home/naney/next.naney.org
公開用ディレクトリツリーに、草稿や修正されたファイルが仮想的にオーバーレイされたディレクトリツリー。プレビュー用。
 mount -v -t aufs -o br:/home/naney/draft.naney.org=rw:/home/naney/www.naney.org=ro none /home/naney/next.naney.org

公開ディレクトリツリーは read only に、草稿用のディレクトリツリーは read - write になるように指定する。

これで /home/naney/www.naney.org 以下はいじらないまま、/home/naney/next.naney.org 上で草稿を書いたりファイルを編集したりすることができる。 /home/naney/next.naney.org 以下で追加したファイルや、変更したファイルは aufs が /home/naney/draft.naney.org 上に保存してくれる。

完成したものを /home/naney/draft.naney.org から /home/naney/www.naney.org に順次反映させ(移動し)、公開サーバへ同期することで公開していくことができる。

手元ではいろいろ書き散らせておけるのは、これは便利。

マウントオプションは他にいろいろあるようなので、こまかい設定は見直すかも。

@ その他

ファイルシステムレベルの処理なので、アプリケーション側では何も手を加えなくてもよいのが良い。

今回は公開用とドラフト用としたが、公開用と未公開用をローカルでミックスして表示するようにしたり、複数ユーザのコンテンツディレクトリを仮想的に1つにまとめたりと、いろいろ面白い使い方ができそうだ。


[ 12月23日全て ]

2008年4月25日 (金)

今日のさえずり - JugemKey ID がいつもので取れない このエントリーを含むはてなブックマーク

@ 2008年04月24日

  • 10:29 間違えて5月7日の準備作業を5月6日に割り当てていた。危ない危ない。
  • 10:46 FileZilla Server ダウンロード。
  • 13:20 Google カレンダー不調。「サーバーに障害が発生しました。後ほど試してみてください。」連発。
  • 13:43 GCMG からの Google カレンダーへの予定入力も駄目だ。
  • 13:52 Google カレンダー復活。本社/社外へ全般的に変だったネットワークも回復したっぽい。
  • 24:40 GCALDaemon の mailterm 設定試しているのだが、実行結果を送信するところで com.sun.mail.smtp.SMTPAddressFailedException。

@ 2008年04月25日


[ 4月25日全て ]

2008年5月2日 (金)

今日のさえずり - F905i は「自動的に電源を入れる/切る」機能健在 このエントリーを含むはてなブックマーク

@ 2008年05月01日

@ 2008年05月02日

  • 13:53 アトレ大井町1Fのリニューアルが終わって、今日残りの新規店がオープンしてた。
  • 16:27 今やってること / ラブジェネレーション観てる。昔観たらしいのだが、ストーリーもシーンも思い出せない。 http://logpi.jp/naney
  • 17:25 F905i は「自動的に電源を入れる/切る」機能健在だ。
  • 17:49 水とりぞうさん増設した。

[ 5月2日全て ]

Related web page

Unison File Synchronizer
ホスティングサービス上のファイルの管理に使用しています。
http://www.cis.upenn.edu/~bcpierce/unison/
nDiki: Unison
の hoge のところを /home/naney、 //server/home/naney 以下にそれぞれあるファイル・ディレクトリを指定して実行(スクリプトを書いてまわす)。 これで一旦 .<strong>unison</strong> ディレクトリ以下に管理情報ができてしまえば、 /home/naney //server/home/naney -fastcheck true でも実用的な速度が出る事を確認。 それから -times オプションを指定してファイルの最終更新時刻を同期しようとすると、同期対象の中に rea
http://www.naney.org/diki/dk/Unison.html

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

torrent(173) expressions(80) 竹内まりや(58) x31(25) ドラマ(23) linux(23) 手帳(21) 壁紙(21) perl(21) windows(20) 動画(19) wiki(17) porter(17) debian(16) 使い方(16) 画像(15) thinkpad(15) 作り方(15) gmail(14) usb(14) 秋葉原(13) ヨドバシ(13) ほぼ日手帳(13) 提案書(12) 活用(12) 竹内(12) 古川小百合(12) 修理(12) ノート(11) 無印(11) ヨドバシカメラ(11) nikon(11) 書き方(10) ダイソー(10) 万年筆(10) 生年月日(10) 大井町(10) ミニ6穴(9) ほぼ日(9) tc-1(9) 冷蔵庫(9) 設定(9) ニコン(9) java(9) mp3(8) 故障(8) 方眼(8) xp(8) 日誌(8) 感想(8) カメラ(8) allinanchor:*.torrent(8) バッグ(8) firefox(7) インストール(7) キーボード(7) mixi(7) 無料(7) リフィル(7) 小林麻耶(7) nikkor(7) ジョイントラック(7) madwifi(7) 原田夏希(7) skype(6) 変更(6) 三条まゆみ(6) ペンケース(6) web(6) emacs(6) home(6) ポーター(6) 2009(6) itunes(6) a6(6) 無印良品(6) デジカメ(6) finepix(6) 無線lan(6) 評判(6)

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

Process Time: 1.393908s / load averages: 1.25, 1.24, 1.23
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)