Synchronization

執行unison -repeat watch會產生文件系統觀察程序錯誤

  • April 11, 2016

我正在嘗試將主機 OSX 中的文件夾同步到執行 Ubuntu 的虛擬機。(laravel/宅基地)。這是我在主機上執行的命令:

$ unison ssh://vagrant@192.168.10.10//home/vagrant/www ~/unison/www -repeat watch

產生以下輸出

Contacting server...
Connected [...]
Looking for changes
 Waiting for changes from server
Fatal error: Server: Unexpected response 'Usage: unison-fsmonitor [options] root [path] [path]...' from the filesystem watcher (expected VERSION)

在我的本地主機上:

$ unison -version
unison version 2.48.3
$ unison-fsmonitor
VERSION 1

在我的虛擬機上:

$ unison -version
unison version 2.48.3
$ unison-fsmonitor
Usage: unison-fsmonitor [options] root [path] [path]...
This program monitors file system changes on all given (relative to root) paths
and dumps paths (relative to root) files to a file. When launched, this file is
recreated. While running new events are added. This can be read by UNISON
to trigger a sync on these files. If root is a valid unison profile, we attempt
to read all the settings from there.

對於我的本地主機,我通過自製軟體安裝了 unison,並從 githubunox.py下載了文件並將其安裝到./usr/local/bin/unison-fsmonitor

對於我的虛擬機,我使用ppa:eugenesan/ppa了 unison,並從 unison 網站下載了 2.48.3 版本的原始碼以獲取 的副本fsmonitor.py,我將其放在/usr/bin/unison-fsmonitor.

沒有問題的一致沒有-repeat watch作品。

如果我嘗試在 VM 中執行相同的命令(反轉 ssh)表單,我會得到相同的輸出。我讀過 unison-fsmonitor 應該符合中描述的協議,而預設腳本/src/fswatch.ml似乎並非如此。fsmonitor.py我錯過了什麼嗎?是否應該將另一個腳本用於 unison-fsmonitor 執行檔?

當您從原始碼編譯 Unison 時,會創建一個單獨的執行檔unison-fsmonitor。當您執行它時unison-fsmonitor,它會列印VERSION 1然後按預期等待。只需在您的 VM 上編譯 Unison 並使用該執行檔而不是fsmonitor.py腳本。

您可以在Unison 2.48.3 的更改日誌中看到他們創建了一個新的文件觀察程序實用程序。fsmonitor.py如果您應該使用新實用程序,我不清楚為什麼包含在此版本中。或者也許新實用程序和 python 腳本實際上執行不同的任務……?

引用自:https://unix.stackexchange.com/questions/275434