nDiki : Unison

Unison

Unison File Synchronizer

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

関連情報

スポンサード リンク

2015年5月3日 (日)

公園でパンを食べたり、MacBook Pro でこの日記を編集できるようにしたり【日記】

rimage:/nDiki/Flickr/16727668524.jpg

いい陽気。今日は体力的にがっつりにはしないことにしようということで、パンを買って公園で食べてくるぐらいをしてきた。ちょっとした事だけれど、天気は良いし緑も綺麗なので幸せである。

あとはようやくこの日記MacBook Pro で更新できるようにした。記事データの転送自体はこの間 Unison でできるように設定してあるのであとは、事前にドラフトを確認環境を作るぐらい。

Perl の環境は perlbrew で。Web サーバHomebrewApache HTTP Server Versoin 2.4 を入れた。最近は Debian 流の Apache 設定で馴染んでしまっているので、素に近いのは久しぶりでなんか新鮮。初めてさわる 2.4 系は設定ファイルの書き方が少し変更になっていて一発ではうまく動かなかったけれど最終的に動くようになったので良かった。

あとは写真管理方法を決めることができてデータの移動も住めば ThinkPad X200 (Debian GNU/Linux) と MacBook Pro (OS X) の併用もだんだんしなくて済むようになるかな。

スポンサード リンク
[ 5月3日全て ]

2015年5月9日 (土)

今日のさえずり: 年賀状チェックした。くじ全滅だった。

2015年05月09日

[ 5月9日全て ]

2015年12月26日 (土)

冬休み1日目なので OS X El Capitan にアップグレードしたり【日記】

rimage:/nDiki/Flickr/23351213284.jpg

今年はいつになくごみ収集最終日が遅い週周りなので歓喜です。「あっ、もうごみ収集終わってるの……」がないのでしっかり片付けできます。

冬休み1日目は家の掃除など。お風呂をジャバで洗浄したり、エアコンをがっつり掃除したりしました。

あわせてようやく MacBook ProOS X El Capitan にアップグレード。とりあえず変わったことと言えば、 Unison の コマンドラインツールのインストールができなくなって、都度導入するかと聞かれるようになったことぐらいです。

夜はついに入浴剤解禁。バブの透明タイプのにしました。温まりますなー。

[ 12月26日全て ]

2016年1月3日 (日)

ようやく ThinkPad X200 のホームディレクトリの全データを MacBook Pro にコピー

昨年4月に注文した MacBook Pro が届いてメイン端末を ThinkPad X200 (Debian GNU/Linux) から変更しました。

Emacs・KeePassX・UnisonGIMPdigiKam・VLC などを入れたところで Debian GNU/Linux 上でやっていたことはほぼ OS X 上でもできるようになり環境自体は移行完了。ただ古くから秘伝のタレのようにコピーしていたホームディレクトリはまだ ThinkPad X200 に残ったままでした。

デジカメで撮った写真動画rsyncUnison などで昨年少しずつ同期したりオリジナルデータを Dropbox 経由で同期したりしてから整理するなどして、ようやくホームディレクトリが 50GB を切ったので残りを全部まとめて MacBook Pro 側にコピーできるかなという状況になりました。

なので昨晩ようやく rsync でホームディレクトリをまるごと転送を実行。何度やっても更新されていないのに転送を繰り返すファイルがあって何だろうと思ったら、大文字小文字違いのファイルやディレクトリが Debian GNU/Linux 側にあったという落ちでした(適宜改名等して対応)。

整理は終わってないですが、とりあえず ThinkPad X200 が死んでデータ復旧が面倒になる自体は避けられるようになって一安心。年末年始休暇で1つ大仕事が終わって満足です。

[ 1月3日全て ]

2016年9月25日 (日)

テキスト日記ファイルを Google ドライブ上にも置く

プライベートの日記のテキストファイル化を昨日開始した際、当初は「今までも外出先で検索したいことはほとんど無かったので、スマートフォンでは検索できなくても良いかな」と思ったのですが、いきなり今日ちょっと過去日記記事を探したくなりました。うーん。

Google ドライブAndroid 版アプリだといい感じにテキストファイルを全文検索して、順番に読んでいくことができたのでこれを使うのが良さそう。

ただし Google ドライブ上に置くことにすると JotterPad から編集できなくなってしまいます。

今まで通り Dropbox 上に置きつつ、DropboxGoogle ドライブの両方と同期している MacBook Pro 上で Unison を使って1日1回同期しておくことにしました。

[ ノート・日記はテキストファイルに ]

今日のさえずり: アジエンス しっとり保湿タイプ シャンプー ポンプは 450ml

2016年09月25日

  • 11:24 9月10日発売のアジエンス しっとり保湿タイプ シャンプー ポンプは 450ml。 今までのアジエンス しっとり仕上がるタイプ シャンプー ポンプは 480ml。
  • 21:40 Dropbox だけだとプレーンテキストファイルの Android デバイス上での全文検索ができないので UnisonGoogle ドライブ側にも同期することにした。
[ 9月25日全て ]

2017年3月16日 (木)

nNoteハイパー日記システム感覚【日記】

思い浮かんだことやちょっとしたノートテキストファイルに書き Unison でサーバに同期することで公開している nNote を使っていて、ハイパー日記システムの時ってこんな感じだったよなぁと最近思っています。

ハイパー日記システムを使っていた頃はまだ mixiTwitter もまだありませんでした。アンテナはあったけれど RSS フィードはまだぼちぼちといった頃。今とは違う牧歌的自由な感覚があったように思います。

[ 3月16日全て ]

2019年7月2日 (火)

Mac でファイルやフォルダのタグ付けを使ってみる

Mac ではファイルやフォルダにタグ付けできるのだけれど、主に Macファイルシステムおよび iCloud 上の閉じた世界のものなので使わないできた。けれど Ulysses でシートにキーワード(= タグ)をつけて整理してみたくなったので、同期とかどうなるのとか調べた上でちょっと使ってみることにした。

以下ちょっと確認したところ。

  • DropboxMac 間でタグを同期できる(ヘルプ)。
    • でも Android 側でファイル更新して FolderSync で Dropbox と同期するとタグは消えてしまう。
  • Unison は rsrc true (Mac 同士なら rsrc default でも) にすると同期できるみたい。同期先が対応していないファイルシステムの場合は ._AppleDouble ファイルが作られる。
  • Google ドライブはタグを同期しない。
[ 7月2日全て ]

2019年12月14日 (土)

Mac での双方向ファイル同期に FreeFileSync を使う

MacBook Pro の内蔵 SSD の容量がいっぱいになってきたので NAS にオリジナルを移動し、そのバックアップとして新しく買った外付け SSD を使うことにした。NAS 上のフォルダと MacBook Pro に接続した外付け HDD 上のフォルダを同期するのに今回 FreeFileSync を使うことにした。

ちょっと古風な UI だけれど良くできている。操作として

  1. 比較ボタンを押して2つのフォルダを比較する。
  2. 同期処理内容を確認してから、同期処理ボタンを押して同期を実行する。

としっかり2段階になっているのが好き。このあたり2003年からリモートホストとの同期に愛用している Unison File Synchronizer と同じ考え方なのでしっくりくる。

同期処理でのファイル削除時にバックアップを作成する設定にもしておける。この設定をしておくことで間違えた時にリカバリもできる。

Unison をリモートホストでも実行できる場合の双方向ファイル同期には Unison を、ローカルホストだけで双方向同期をさせる必要がある場合は FreeFileSync という形で今後使い分けよう(ちなみに Android では FolderSync Pro)。

[ Mac アプリケーション ] [ ファイル同期 ]

[ 12月14日全て ]

2021年1月5日 (火)

最近の Unisonビルドする

双方向ファイル同期化ツール Unison File Synchronizer、 Mac で使っているのが Unison 2.48.6 の GUI 版なのだけれど、古いせいか macOS Catalina だと「Install command-line tool」 が機能しない(/usr/bin にインストールしようとしているからかな)。

macOS 上で text UI 版がちょっと使いたい & GUI 版も新しいのにしたいなと思ってビルドとかした。

現在の Unison のバージョン

2021年01月05日時点での安定版は 2.51.3

Homebrew で入れる

 $ brew install unison

で text UI 版の「unison version 2.51.3 (ocaml 4.10.0)」が入る。GUI 版は入らない。

macOS Catalina 上でビルドする

Unison 最新版のバイナリ配布が見当たらないのでビルドしてみる。 Xcode が必要。

 $ xcode-select --install

で入る Command Line Tools だけだと text UI 版の Unison しかビルドできないので App Store から Xcode をインストールした。

OCaml は Homebrew ので済ます。

 $ brew install ocaml

今日時点で入るのは OCaml 4.10.0 だ。次に Unison 2.51.3 をビルドする。

 $ cd ~/tmp
 $ curl -OL https://github.com/bcpierce00/unison/archive/v2.51.3.tar.gz
 $ tar zxvf v2.51.3.tar.gz
 $ cd unison-2.51.3
 $ make all

make だけだと text UI 版しかビルドされないので make all してみた。が残念 GUI 版はエラーで途中で止まった。今はうまくビルドできないのかもしれない。

諦めて make で text UI 版だけバイナリを得ることにした。 make 後

 $ ./src/unison -version

で実行できることを確認。 ./src/unison を適当なところにコピーしておく(これなら brew install unison で十分だった)。

FreeBSD 上でビルド

ローカルホストの Unison とリモートホストの Unison のバージョンが合っていないと同期できないのでリモートホスト側 (FreeBSD 9.1-RELEASE-p24) でも同じバージョンのものをビルドする。さくらのレンタルサーバ プレミアムで root 権限はないのでユーザー権限にて。

まずは OCaml。最近の OCaml は opam というのでインストールして使うのが流儀らしい。 opam をインストール。

 $ cd ~/tmp
 $ mkdir bin
 $ curl -OL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh
 $ BINDIR=$HOME/tmp/bin sh install.sh

リモートホストの環境に合ったプレビルドが無いとエラーが出て install.sh ではインストールできず。

OCaml の前に遡って opam のビルドをする。

 $ cd ~/tmp
 $ curl -OL https://github.com/ocaml/opam/archive/2.0.7.tar.gz
 $ tar zxvf 2.0.7
 $ cd opam-2.0.7
 $ gmake cold CONFIGURE_ARGS="--prefix ~/tmp/opam"
 $ gmake cold-install

ビルドできた。opam を初期化する。

 $ PATH=$HOME/tmp/opam/bin:$PATH
 $ opam init

gpatch が無いとエラーで止まった。 patch へのシンボリックリンクで gpatch を作ってイケるかなと思ったけど今度は別のエラーで止まる。うーん。 opam で OCaml をインストールするのは断念。

OCaml のドキュメントを読んだら今まで通り configure して make も普通にできるじゃない。

 $ curl -OL https://github.com/ocaml/ocaml/archive/4.10.0.tar.gz
 $ tar zxvf 4.10.0.tar.gz
 $ cd ocaml-4.10.0
 $ ./configure --prefix $HOME/tmp
 $ gmake
 $ gmake install

次に Unison 2.51.3 をビルドする。出来上がったバイナリは今使っている Unison 2.48.3 と併用できるように別のディレクトリへ。

 $ cd ~/tmp
 $ curl -OL https://github.com/bcpierce00/unison/archive/v2.51.3.tar.gz
 $ tar zxvf v2.51.3.tar.gz
 $ cd unison-2.51.3
 $ PATH=$PATH:$HOME/tmp/bin
 $ gmake
 $ ./unison -version
 $ mkdir -p $HOME/local/unison-2.51.3/bin
 $ cp -a src/unison $HOME/local/unison-2.51.3/bin

サイト

[ 1月5日全て ]

2021年1月11日 (月)

Google ドライブDropboxUnison で同期する

ノートテキストファイルは全文検索できるよう Google ドライブと同期しておきたい。それと同時に他の PC との同期のため Dropbox とも同期しておきたい。しかしセキュリティを考えてクラウド同期サービスは使いたくない。

Google の「バックアップと同期」アプリと Dropbox アプリの両方を動かしてそれぞれローカルフォルダと動機している MacBook Pro 上で、そのローカルフォルダ間のファイル同期を実行してみることにした。

使うのは普段リモートホストとの同期に使用している Unison File Synchronizer。最近になって repeat = watch というファイル更新をモニタリングするオプションを知ったので試してみる。

unison-fsmonitor を用意する

ファイル更新モニタリングで使う Unison 標準の unison-fsmonitor は macOS では使えないらしいので代替の https://github.com/autozimu/unison-fsmonitor をインストールする。

 $ brew install autozimu/homebrew-formulas/unison-fsmonitor

Unison のプロファイルを作成する

Unison の同期用のプロファイルは以下のような感じ。

 root = /Users/naney/Google ドライブ/folderA
 root = /Users/naney/Dropbox/folderA

 times = true

 repeat = watch
 silent = true

 logfile = /Users/naney/var/log/unison.log

(実際には path や ignore をもう少し指定している。)

同期する

repeat = watch と silent = true をいったんコメントアウトして

 $ unison <プロファイル名>

で手動同期し、期待通りの同期ができているか確認する。問題無ければ

 $ nohup unison <プロファイル名> &

で監視を開始する。

動作確認した感じでは

と安定して使える感じだ。

コンフリクトが起きた場合はスキップされたままになるので、たまに手動で Unison を実行して確認した方が良さそうではある。

[ ノート・日記はテキストファイルに ]

今日のさえずり: 我が家にもキットカットのダウンサイジングの波がやってきた

[ 1月11日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

About nDiki

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。

#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。

Other Notes

ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。

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

月別インデックス
Process Time: 0.091383s / load averages: 0.39, 0.37, 0.33
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker