平成30/ 2018-10-21 05:33
unison linux windows 同期

windowsには、SSHで仮想ドライブを作るソフトがあるが、これだとローカルPCに保存されない。
Dropboxや、GoogleDriveと同じようにならないとうことだ。
それと同じようにする方法に
unison
がある。タスクスケジュールは自分で行わないといけないので、まったく同じように手間かからない訳では無いが便利である。

手順の概要は
1. Linux用のUnisonをインストール。windowsのunisonバージョンと合わせなくてはならない。
yum install unison

2. Windows用のUnisonをダウンロード。linuxのunisonバージョンと合わせなくてはならない。
puttyの、plink をダウンロード。

3. Windows用のバッチをダウンロードし、 SSHのアクセス先や、ローカルPCの保存先など設定する。
ここがオプション設定の部分で、
set UNISON_OPTIONS=-contactquietly
以下のように -batch を指定すると、タスクで実行の際に入力を求められなくなる。衝突( Concrift )があった場合はスキップされる。
set UNISON_OPTIONS=-contactquietly -batch

4. (3)を実行してみる。問題なければタスクスケジュールに登録すればいい。

以上。

( 使い方は以下が参考になりそう )
http://blog.studiotwain.jp/index.php?ID=1634
初回同期時は説明文が表示されるので一読し,retrunキーを押します。どちらのファイルをコピーするか聞いてきた場合は,以下のように指定します。

Press return to continue.[<spc>]   Waiting for changes from server
Reconciling changes

local          piyo      
         <---- dir        /  [f]
ローカルからリモートへコピー:キーボードの「>」
リモートからローカルへコピー:キーボードの「<」
unisonの推奨に従う:キーボードの「f」
すべて自動で実行する:キーボードの「g」
スキップする:キーボードの「/」
同期をキャンセルする:キーボードの「q」
ヘルプを見る:キーボードの「?」


( 使ってみてみて )
以下がでて、もろもろ更新できないファイルでてきた。
has been modified during synchronization. Transfer aborted.

きっと、コンクリフト( 衝突 )が起きていて、Unisonが更新してよいものか判断できないことが原因だと思う。
まだ調査中だが、更新すべきものが自動更新されないのは、まずいので、以下をした。

1. 運用後、新規作成したディレクトリが、SKIPされてるようなので、追加したディレクトリ( 空のもの )を作ってあげたら、動いた。
2. コンクリフトが多く起きてるので、一度、手動で、コンクリフトをどのように処理するかを命令してあげたら、動いた。
3. ( 1 )、( 2 )で動いたら、また同じ現象でたので調査中。


( Thanks. )
unison home
http://www.cis.upenn.edu/~bcpierce/unison/download.html

UnisonでWindows-Linux間のフォルダ双方向同期
http://www.er.ams.eng.osaka-u.ac.jp/user/kikuchi/wiki/wiki.cgi?page=Unison%A4%C7%C1%D0%CA%FD%B8%FE%C6%B1%B4%FC#p0

File synchronisation with Unison and plink
http://www.spurtle.net/unison/

PuTTY Download Page
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

ファイル同期ツールに関するまとめとUnisonを入れてみたメモ
http://blog.studiotwain.jp/index.php?ID=1634