執行unison -repeat watch
會產生文件系統觀察程序錯誤
我正在嘗試將主機 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,並從 github
unox.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 腳本實際上執行不同的任務……?