我有一个云存储服务器,我想将其与多台计算机同步。我可以通过 rsync、SFTP 或 WebDAV 进行访问,但没有 shell 访问权限。所以我无法在服务器上运行 Unison。我使用 lsyncd 和 cronjobs 的第一个解决方案无法正确同步已删除的文件。
我最终想出了以下解决方案:我通过 sshfs 将我的云存储挂载到本地挂载点 /mnt/cloud,并使用 Unison 将此目录与本地目录 ~/cloud 同步。我在启动时(通过 /etc/rc.local)使用 -repeat watch 选项运行 unison。为了确保它继续运行,我每 2 小时终止所有 unison 进程并使用 cronjob 重新启动 Unison。
当 sshfs 挂载启动时,此操作正常。似乎如果连接中断,sshfs 挂载仍然在缓存中或完全为空(这会导致 Unison 退出并出现错误)。
我的问题是:当连接中断时,此解决方案是否安全?或者是否存在与 sshfs 挂载的连接中断可能导致 Unison 删除文件(因为它找不到它们)的情况?
如果我没有服务器的 shell 访问权限,有没有更好的方法可以可靠地双向同步多台计算机(包括删除文件)?