nDiki : ファイル同期

ファイル同期 - file synchronization

ファイル同期ソフトウェア

2009年1月23日 (金)

USB メモリの同期とポータブルアプリケーションの再整備

2006年12月に初めて 512MB USB メモリを購入した時にいろいろポータブルアプリケーションを揃えたりファイル同期を手順化したりしたんだけれど、それ以降あまり変更を加えていなかった。

定期的にやってくる「データとポータブルアプリケーション」の持ち運び熱がちょっときたので再整備を開始。しばらく前から検討していたけれど結局基本は同じになりそう。

スポンサード リンク
[ 1月23日全て ]

2009年2月14日 (土)

Windows 上の Unison では日本語ファイル名処理に問題

今まで Windows ではそれほど Unison を使わなかったのと、自分では日本語ファイル名をつけないということで気がつかなかったんだけれど、UnisonWindows 上では日本語ファイル名処理に問題があるらしい。

Unison 2.27.57 で日本語ファイル名のファイルを同期しようとすると `The name of this Unix file is not allowed in Windows' というエラーメッセージが表示されることがある。 チェックは正規表現 "\\.*|aux|con|lpt1|prn|(.*[\000-\031\\/<>:\"|].*)" でしているらしい。 マルチバイト文字だとこれで誤認識されることがあるようだ。

パッチあててもいいけれど、Windows 上で Ocaml ビルド環境入れてとかちょっと面倒。 他のファイル同期ツール探すか、Linux 上で同期するかどちらかだな。

[ 2月14日全て ]

2009年2月16日 (月)

USB メモリファイル同期なら WinMerge

WindowsUnison が駄目そうなので代替を探したのだが、ファイル同期関連で探して試しみたもののどれも自分の使い方にあわなかった。 双方向同期で、Unison のように差分について個別に同期方向を選べるものが見つからなかった。

そんななか、仕事でディレクトリの差分を確認する必要が出てきたのでソフトウェアを探したところ、WinMerge に行きついた。 WinMerge は以前 TortoiseSVN のビューアとして設定したことがあって、ファイルの差分表示・編集のイメージが強かったのだが、ディレクトリの比較に使うのにも非常に便利だ。

で使ってみると、比較するディレクトリ間で異なるファイル/ディレクトリに対して個別に指定した方向でコピーをしたり、また削除したりすることができることを知った。 お、Unison っぽい。 タイムスタンプだけでなくファイルの内容を見て同一かどうかをチェックできるのも良い。 望むことができるではないか。

日本語化もできるし、ポータブルアプリケーション版もある。 USB メモリの同期にバッチリ。 ようやく辿りついたという感じ。

なおファイル比較のオプションの File Compare method を標準の Full Contents にしておいた場合、ファイル数が多くなると遅い USB メモリでは差分のチェックに結構時間がかかってしまう。Quick Contents にしておくのが良さそうだ。 それでも遅い場合は(信用できるならば) Modified Date and Size 等を選ぶ必要があるかもしれない。

[ 2月16日全て ]

2009年7月28日 (火)

FriendFeed から twitterfeed

10日ほど前に Twitter へのフィード投稿を twitterfeed 経由から FriendFeed 経由に変更してみた(記事)のだけれど、挙動がニーズにマッチしないので twitterfeed に戻した。

FriendFeed の Twitter 投稿機能だと date がちょっと古いフィードアイテムは新着でも投稿されないっぽいのである。

nDiki で使っている DiKickerRSS フィードでは、アイテムの date を最初の公開日時ではなくファイルシステム上にある記事ファイルの更新日時としている。 このためローカルホスト上で記事ファイルを作成し、例えば半日後に UnisonWeb サーバファイル同期させて公開するとその時点で半日前の日時の記事が新着となる。 twitterfeed ではこのような場合でも新着として Twitter へ投稿してくれるのだが、FriendFeed ではどうも新着であってももう旬ではない記事として投稿してくれないっぽい。 挙動の設定も変更できなさそう。

ということで FriendFeed の Twitter 投稿を止めて、twitterfeed の設定を再アクティブ化。twitterfeedOAuth に対応したり利用できる URL 短縮サービスが選べるようになっていたりと着実に改良されているので今後も継続してサービスされていくことを期待したい。


[ Twitter 関連サービス ]

[ 7月28日全て ]

2009年10月12日 (月)

DropboxPortable で必要な時に USB メモリ内を最新環境に同期

先週の大型台風では、都心の JR 線は軒並み運転見合わせ。 出社しようにも交通手段がないので復旧するまでは自宅に戻ってできる作業をすることにした(記事)。 しかし前日の夜に残業を終えて帰る際「明日は台風で運転本数も7割ぐらいにする計画という情報が出ている。混雑した電車で潰されたり豪雨で濡れたりする可能性があるのでノート PC は今日は会社に置いて帰ろう。どうせこの時間なら帰宅しても使わないし」と持ち帰らなかったのが仇になった。

いつものノート PC がないので自宅のノート PC を借りて、USB メモリに入れてあるポータブルアプリケーション環境とネットサービスでできることをしておこうと思ったのだが、これが以外に手間取った。

  1. ネットサービスを使おうと思ったが Internet Explorer しかない。Mozilla Firefox, Portable Edition をまずはインストール。しかし、ある程度のアドオンなどが入った Firefox がないと効率が良くないしストレス。いつも使っている Firefox, Portable は USB メモリにはセキュリティの関係でいれていなかった。
  2. GTD で使っている ThinkingRock がない。データは Dropbox 上にあるけれど、Dropboxパスワードは覚えていない。ThinkingRockUSB メモリに入れていない。
  3. Skype で他の人の出社状況を確認しようとしたけれど、他の人の PC の Skype を使うのは気がひける。以前使っていたように USB メモリにも入れておけばよかった。
  4. いくつかの常用パスワード以外は覚えていないので、例えば Dropbox から Web インタフェースで落とそうにもノート PC がないとパスワードがわからない。KeePass データベースにちょっと入っているはずだけれど、積極的に使っていなかったのでたいして登録してないはずだし、同期してないし、そのそもデータベースパスワード忘れている。

ということで、ポータブル環境の見直しが必要かなと。

  1. 紛失した時などためにアカウント情報を含むようなものは基本 USB メモリに入れていない(一部は TrueCrypt 仮想ボリュームに入れてはいた)。しかしいざ使いたいのはそれら。
  2. たまにしか使わないポータブル環境のために、しょっちゅうファイル同期を手動でしたりはしない。ということで、使いたい時には最新のデータが入っていないので、結局使えない。

このあたり、DropboxPortable を使って見直してみることにした。 方針は以下。

  1. ポータブル環境同期用に Dropbox アカウントを取る。メインの Dropbox アカウントに portable/ 共有フォルダを作り共有しておく。
  2. DropboxPortable をダウンロードする。
  3. デスクトップ機に TrueCrypt 仮想ボリュームを作成する。
  4. TrueCrypt 仮想ボリューム内に DropboxPortable を入れる。DropboxPortable/Data/applicaiton Data ディレクトリ以下に DropboxPortable のデータベースファイルが作られるため、セキュリティ上 DropboxPortable も TrueCrypt 仮想ボリュームの中に入れておく必要がある。
    1. ZIP ファイルを展開する。
    2. DropboxPortable.example.xml を DropboxPortable.xml にし、ディレクトリ指定を \var\Dropbox に書き換える。\var 以下にするのは個人的な好み。
  5. \var\Dropbox\portable 以下に USB メモリと常に同期したいファイル・ポータブルアプリケーション暗号化しておきたいファイルを置く。
  6. 普段からこのボリューム上のアプリケーションを常用して最新の環境にしておくようにする。
  7. USB メモリ上に TrueCrypt をトラベラーモードでいれる。
  8. USB メモリ上に TrueCrypt 仮想ボリュームを作成しデスクトップ機上のと同じように PortableDropbox を設定し同期する。

これで USB メモリがあれば、TrueCrypt 仮想ボリュームをマウントしていつもの環境が使える。 The Internet 接続があるならば DropboxPortable を起動して、サーバ経由で最新の環境・データに同期することができる。

この方法の場合メディア的には TrueCrypt 仮想ボリューム上にファイルがあるので、紛失などしてもちょっと安心。 そのかわり Dropbox とのやりとりでは生ファイルになる(Dropbox 自体も暗号化はしているはずだが)。

当初は TrueCrypt 仮想ボリューム自体を Dropbox で共有しようと思ったが、これだと DropboxPortable のデータファイルが保護できない。TrueCrypt 仮想ボリュームの中に TrueCrypt 仮想ボリュームを作ればメディア的にも Dropbox 上的にも暗号化できるが、手間だしパフォーマンス的にもつらそう。 TrueCrypt 仮想ボリューム内で Dropbox で同期しているファイルについては、重要なファイルのみ個別に暗号化で対応したい。

あと、今回使ってみてわったのだが DropboxPortable はメインで動かしている Dropbox とは別に同時に起動できるのね。 これは便利。Dropbox を複数アカウント同時に使う時にも活用できるな。

[ 10月12日全て ]

2009年12月14日 (月)

さくらのレンタルサーバ設定: Unison

そろそろマジで naney.org 移転先のサーバ設定せねば。ローカルとのファイル同期用に Unisonインストール

 bash
 mkdir tmp
 cd tmp
 wget http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.1.tar.gz
 tar zxvf ocaml-3.11.1.tar.gz
 cd ocaml-3.11.1
 ./configure -prefix $HOME/tmp
 make world
 make opt
 make install
 cd ..
 wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.32.52.tar.gz
 tar zxvf unison-2.32.52.tar.gz
 cd unison-2.32.52
 PATH=$PATH:$HOME/tmp/bin
 gmake UISTYLE=text
 ./unison -version
 mkdir -p $HOME/local/unison-2.32.52/bin
 mkdir -p $HOME/bin
 cp -p unison $HOME/local/unison-2.32.52/bin
 ln -s $HOME/local/unison-2.32.52/bin/unison $HOME/bin
 rm -rf $HOME/tmp

[ さくらのレンタルサーバ プレミアム ]

今日のさえずり - Twitterご利用明細書きた。1年分請求額 12,353円。

2009年12月13日

  • 10:13 FeedTweet の人から問題解決のために Customer Support ID 教えてという2度目の D いただいた。1度目の時に D で連絡返したのにと思って今確認したら follow されてなかった……。
  • 11:35 ようやく今年1月2日以降にもらった年賀状の受け記録を筆まめに入力して来年分の年賀状作成数を確認。住所変更の確認をしながら、ついストリートビューで見てしまったり。
  • 12:24 RT @k12u: 【速報】NTTから間違い電話がきた
  • 19:01 台所で大平原発見。六花亭のなんだけれどこれマイナー? 初めてみた。
  • 19:04 @nyafuru 風邪長引いてるね。熱は大丈夫? お大事に。
  • 19:22 この前会社でクラクラしたのでレバー食べる。
  • 23:49 yaGTD 調査中。 #GTD

2009年12月14日

[ 12月14日全て ]

2009年12月23日 (水)

www.naney.orgさくらのレンタルサーバへ移転

naney.org メールサーバの移転に次いで、Web サーバの移転作業。

静的コンテンツのアップロード

現行 Web サーバUnisonファイル同期している Web コンテンツを、さくらのレンタルサーバUnisonファイル同期

WiKickerインストール

nDiki 用に DiKicker (WiKicker) を make install。

 %bash
 $perl -MCPAN -e mkmyconfig
 $perl -MCPAN -e shell
   o conf makepl_arg PREFIX=/home/naney/local/WiKicker
   o conf mbuildpl_arg --install_base=/home/naney/local/WiKicker
   o conf commit
   notest install CGI::SpeedyCGI

 $tar zxvf WiKicker-0.420.tar.gz
 $cd WiKicker-0.420
 $export PERL5LIB=$HOME/local/WiKicker/lib/perl5/site_perl/5.8.9
 $perl Makefile.PL PREFIX=$HOME/local/WiKicker
 $make
 $make install

以前きっちり Module::InstallMakefile.PL を作っておいたおかげで、比較的スムーズにインストールできた(自画自賛)。

ちょっとはまったところは CGI::SpeedyCGI の make test を実行する(される)と SSH 接続がサーバ側から切られてしまうという現象にあったところ。 テスト用に大量にスクリプトが起動されるの検出して自動的に kick されたのだろうか。

.htaccess の修正

さくらのレンタルサーバでは .htaccess Options が使えないようなので削除。 ExecCGI や MultiViews が有効になっているようなので問題なし。

いつくかのスクリプトの修正

Perl 5.005_03 用に書いてあったスクリプトについて、Perl 5.8.9 で文字化けしないように utf8 まわりを修正。

cron 設定

1時間毎に実行したい処理を列挙するシェルスクリプトを1つ作って、コントロールパネルから1時間毎に実行するように設定。

現行サーバでは任意の crontab を設定できたので、1時間毎はちょっと物足りない。 おいおい負荷にならない範囲で、外部から定期的に HTTP アクセスして処理を定期的に実行できるようにもするかな。

DNS 設定変更

まだ動いていないスクリプトもあるけれど(大きいところだと NaneyOrgWiki (Wiki))現行サーバの解約日もせまっているので、サーバ移転させてしまうことに。

VALUE-DOMAINDNS サーバ設定を変更し www.naney.orgさくらのレンタルサーバにアクセスできるように A レコードを変更。

今のところ特に重い等もなく順調。 現行サーバでは深夜非常に重くなる時間帯があったのだが、それが無くなるのが嬉しい。 また容量が100MB*1から10GB*2になったので心理的にセーブしなくて良くなった。

年内に移行できて良かった良かった。


[ さくらのレンタルサーバ プレミアム ]

*1メール等別

*2メール他を含む

[ 12月23日全て ]

2011年2月8日 (火)

今日のさえずり: bach ってホスト名、batch と見間違えるから嫌だということが判明

2011年02月08日

  • 09:58 昨日はまだ表示されていなかった Facebook の[アカウント設定]-[設定]-[アカウントのセキュリティ]の[セキュアな接続(https)]が表示されるようになったので設定。 #Facebook
  • 11:11 なんだ、Windows のリモートデスクトップってローカルのドライブをリモートからアクセスできるように簡単に設定できるんだ。ファイル同期とか気にしなくてもいいんだな(速度的な問題がなければ)。
  • 11:18 net use n: \\tsclient\d した。
  • 12:10 野菜を食べようタンメン 398円。 (@ セブン-イレブン 神田佐久間町店) http://4sq.com/dItvAt
  • 13:38 ウイルスバスター ビジネスセキュリティサービスの製品コンソールに入れない。
  • 13:47 ユーザ名間違えてた。 RT @Naney: ウイルスバスター ビジネスセキュリティサービスの製品コンソールに入れない。
  • 13:58 リモートデスクトップ上で起動した Skype、オーディオ設定の[スピーカー]は[リモート オーディオ]になってローカルで音が聞けるけど、[マイク]が[なし]で NG。
  • 14:13 「紙copi」の事業譲渡に関するお知らせがきた。
  • 15:51 これ踏んだか。「Windows 7 または Windows Server 2008 R2 を実行しているクライアント コンピューター上のネットワーク共有のアプリケーションを開こうとするとエラー メッセージ: 0xc000000f」 http://bit.ly/dV5TIa
  • 16:46 結局 Unison で同期かけてる。
  • 18:02 RT @k12u: 【新発見】 rm -rf / より mv /* の方が即効性がある!
  • 18:33 bach ってホスト名、batch と見間違えるから嫌だということが判明。
  • 18:50 リモートデスクトップ先に Strawberry PerlSKKIMEインストールしました。ご了承ください(XKeymacs は手動で立ち上げます)。
  • 19:12 Unison を socket method で使ってしまってゴメンナサイ。
  • 19:43 Windows 7 に自分のアカウントでリモートデスクトップで入って、デスクトップにある邪魔くさいアプリケーションショートカットをバシバシ消しておいたら、その PC のユーザから悲しみの声が。えぇー、そうなん? デスクトップのショートカットってアカウント毎じゃなかったのお。
  • 19:52 @y_aki 管理者権限のついてるアカウントだったのであっさり消せちゃったんですね。
  • 19:58 @y_aki 明日出社したらごみ箱から拾ってみます。
  • 20:48 明日スーツ着て出社予定だけど、前回から1年弱ぶりだよ。去年入社した人は私のスーツ姿知らないんじゃない? 「スーツ着て出社したら大騒ぎになってる (2010-03-30) http://bit.ly/hoj7OD
  • 23:15 NHKオンデマンドで見逃がした番組見る方向で検討中。アクトビラ ビデオ・フルにすればいいのかな。
  • 23:23 Z全然駄目だ。測定サイトで 0.8Mbps だった。
  • 23:39 そういえば PIXUS MP980 って両面印刷できるんだと思ってやってみたら、いきなり用紙つまった。
  • 23:40 紙がちょい厚めだったかな。
[ 2月8日全て ]

2013年3月1日 (金)

UnisonWindowsLinux で双方向ファイル同期 with Plink

Windows 上で作成・更新したファイルをサクッと Linux 上に反映させるのに、やっぱり Unison File Synchronizer を使うことにした。Windows 上の Unison から SSH 経由で Linux 上と同期させる構成ってしたことなかったな。ちょっと調べつつ設定。

Windows

Unison-2.40.102.zip をダウンロードしてきて C:\Uers\Naney\local\Unison-2.40.102 として展開。テキスト版(CLI 版)を使いやすいように unison.exe という名前に変える。

SSH 経由の接続については PuTTY についている Plink を使うことにした。OpenSSH とはちょっと違うので下記のようにバッチファイル C:\Uers\Naney\local\Unison-2.40.102\plinkunison.bat を作る。

 @c:\Users\Naney\local\PuTTY\plink.exe -l naney -ssh remote.example.com unison -server

同期先のホスト remote.example.com にアカウント naney で SSH 接続して unison をサーバとして起動するというバッチファイル。

次に Unison 同期設定を書いたプロファイルファイル c:\Users\Naney\.unison\test.prf を作る(テスト用)。内容は以下。

 root = c:\Users\Naney\unisontest
 root = ssh://naney@remote.example.com/home/naney/unisontest

 sshcmd=c:\Users\Naney\local\Unison-2.40.102\plinkunison.bat

 times = true
 fastcheck = yes

双方の unisontest ディレクトリを同期する設定になってる。

Linux

最新の OCaml (Unisonビルドに必要)と Unison を取ってくる。

 wget http://caml.inria.fr/pub/distrib/ocaml-4.00/ocaml-4.00.1.tar.gz
 wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.40.102.tar.gz

あとは以前の インストール手順 と同じ流れでインストール

実行

Windows のコマンドプロンプトから

 unison test

で同期できることを確認。

あとは実際の同期したいディレクトリのペアにあったプロファイルファイルを作っていけば OK。

[ 3月1日全て ]

2015年4月19日 (日)

AirMac Time Capsule共有フォルダとローカルディレクトリとを Unison で双方向同期させる

昨日 Linux から AirMac Time Capsule をマウントできるようになったので次はファイルの双方向同期の設定。AirMac Time Capsule の共有ディスク上に写真を置いて家族共有するのだけれど、AirMac Time Capsule にしかファイルが無い状態は当然避けたいので、ローカルディレクトリとファイル同期しておく。

Unison File Synchronizer

OS X 用の良さそげな双方向ファイル同期アプリが無いかなと探していたんだけれど、これっというのが無いので結局 LinuxFreeBSD 上で長年使っている Unison File Synchronizer を使うことにした。 OS X だといちおう GUI 版もある。Unison はメンテが止まるかなーと思いつつもたまにアップデートされているので今のところまだしばらく使えそう。

OS X と同期

Unison の設定は下記の通り。違う共有ディスクがマウントされている時に間違えて実行しないように mountpoint を指定。パーミッションの変更ができなくて Unisonエラーになるので perms = 0 にしておいた。

 times = true

 root = /Users/naney/archive/family
 root = /Volumes/Data/archive/family
 mountpoint = family-photo

 perms = 0

Linux と同期

Unison の設定は下記の通り。/mnt にマウントした状態で実行する。マウント間違い対策として mountpoint を指定。

 times = true

 root = /home/naney/archive/family
 root = /mnt/archive/family
 mountpoint = family-photo
[ 4月19日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.052032s / load averages: 0.32, 0.49, 0.49
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker