我们希望使用同步docs
两台主机(分别为server
和)之间的目录。因此,我们有一个配置文件,它定义了根目录并提供了同步的首选规则列表。该命令始终在 上运行。问题是,有时同步是通过本地网络完成的,在这种情况下,IP 类似于,服务器被标识为,但有时同步是通过互联网完成的,并且 的 IP类似于,被称为。laptop
unison
unison
docs.prf
unison
laptop
server
10.xxx.xxx.xxx
server.localdomain
server
135.xxx.xxx.xxx
server
server.domain.com
当然,我们希望ar...
在两种情况下使用相同的数据,并在 中定义相同的规则docs.prf
,因此创建第二个配置文件不是一个解决方案。我尝试使用unison
命令行选项 来更改远程主机名(如-rootalias
,-host
),但没有成功。有人知道吗?
答案1
我找到了一个使用脚本的解决方法。它首先 ping server.localdomain
。如果有答案,则表示我们在专用网络中,这是默认配置,因此它正常运行。如果 ping 失败,脚本会创建一个临时文件,/tmp/sshRedirect
其中包含
Host server.localdomain
HostName server.domain.com
并unison
使用选项调用 and -sshargs -FsshRedirect
(重要的是后面没有空格F
)。这样,unison 就可以透明地重定向。