我正在尝试将主机 OSX 中的文件夹同步到运行 Ubuntu 的虚拟机。 (拉拉维尔/家园)。这是我在主机上运行的命令:
$ unison ssh://[email protected]//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,并下载了unox.py
文件来自 github并将其安装到/usr/local/bin/unison-fsmonitor
.
对于我的虚拟机,我使用了ppa:eugenesan/ppa
一致,并下载了版本 2.48.3 的来源从一致网站获取副本fsmonitor.py
,我将其放在下面/usr/bin/unison-fsmonitor
。
没有-repeat watch
作品的齐奏没有问题。
如果我尝试在虚拟机内部运行相同的命令(反转 ssh),我会得到相同的输出。我读到 unison-fsmonitor 应该遵守描述的协议,/src/fswatch.ml
但默认脚本似乎并非如此fsmonitor.py
。我是不是漏掉了什么?是否有其他脚本可以代替 unison-fsmonitor 可执行文件使用?
答案1
当您从源代码编译 Unison 时,会unison-fsmonitor
创建一个单独的可执行文件。当您运行它时,unison-fsmonitor
它会打印VERSION 1
然后按预期等待。只需在虚拟机上编译 Unison 并使用该可执行文件而不是脚本即可fsmonitor.py
。
您可以在Unison 2.48.3 的变更日志他们创建了一个新的文件观察器实用程序。fsmonitor.py
如果您应该使用新实用程序,我不清楚为什么会包含在此版本中。或者也许新的实用程序和 python 脚本实际上执行不同的任务......?