Unison(windows用) 導入

参考になった記事

  1. 入手元
  2. 入手した実行ファイルをunison.exeのファイル名として同期したい各ローカルネットワーク上のPCのパスの通ったディレクトリにコピーするなりシンボルリンクで貼るなりして置く
  3. puttyでOpenSSHでの秘密鍵指定付き接続のプロファイル作成 (19/07/14)
  4. リンク先頁の一番上の配布物をputtyと同フォルダに解凍しunisonの引数もしくは設定のsshcmdに指定http://www.wischik.com/lu/programmer/unison-ssh.html / 中身はputtyplink互換なsshコマンドなようです
  5. hoge.prfの記述 (2016/09/22 記事の説明不足が気になるので追記)
root = e:/path/
root = ssh://valid-user@192.168.0.2/e:/path/
sshcmd = d:/pathto/putty/ssh.exe ※puttyと同フォルダ
sshargs = -load ssh-x121e ※puttyで作成した秘密鍵指定済みプロファイル名 (19/07/14 修正)
sshargs = -i c:/Users/valid-user/.ssh/id_rsa-host_n.ppk ※接続先host n用に作った秘密鍵
  1. 上記の内容のファイルを "C:\Users\ローカルのユーザー名\.unison"に置く
  2. コマンドプロンプトから "unison.exe hoge" とコマンドを実行(hogehoge.prfを指す)
  • いろいろ試行錯誤し悩んだが上記の方法で一発でいけた

リモホに-socketオプションで常駐させて生通信の同期で使ってみていたが、同期が開始せずに「ユーザーディレクトリにある.unisonフォルダ以下のxxxxxというファイルが間違っているので削除してください」などと都度面倒くさいエラーが頻繁に出て終了していたのに対し、本筋のssh接続での同期では殆どそういうことがないので格段と良くなった感じがする。流石
しかしモニタ表示のの文字化けだけ少々気になる。

  • 他にもCLIで動作する完全双方向同期のツールはないかと結構探したものの、あまり見つけることはできず、WindowsのSyncToyも使ってみましたが二股の同期などですぐに同期データがぶっ壊れる(使い方の問題かもしれませんが・・・) 感じでいちいちGUIから設定し直すのが面倒で使うのは辞めました。でもUnisonだと巨大なファイルの点数の入ったディレクトリの同期は厳しいのでそういう適所でmicrosoft御製のSyncToyは使えるかも
  • しかし当のUnisonのほうも二股同期していると消した筈のファイルが復活することがしばしば(条件は未検証、コマンドラインオプション次第で解決するかも !?)
  • (19/07/14) 記事が雑なので書き直しました
  • (19/07/14) putty側で接続プロファイルを作っておいて、そのオプションを指定したほうがすんなり動くので修正、"ssh-x121e"がputtyのOpenSSH接続の接続プロファイル名です
  • (19/07/14) 同期するファイルの総数があまりにも多いと、(少なくとも100万単位ですが) 、うまく同期できない