我正在使用Unison与云存储服务器同步本地目录(比如“/ local”)。 云存储通过sshfs(无caching选项)挂载到“/ mnt”,并且将本地和/ mnt两个目录与Unison同步。 [我没有对服务器的root访问权限,并且Unison未安装在服务器上,因此无法与Unison进行真正的远程同步。]
总之,我正在寻找一种安全的方法来同步多台计算机的本地目录与服务器(包括正确处理删除的文件)。
我假设本地目录之间的Unison同步原则上是安全的,只要连接没有任何事情发生。 但是如果在Unison工作时sshfs连接断开呢? 不幸的是,我不明白sshfs连接是如何工作的,以判断是否存在数据丢失风险。
假设Unison在连接中断时正在将修改的文件写入/ mnt。 它会退出一个错误(我认为是安全的)? 我担心的是它会继续写入到/ mnt,尽pipe连接已经断开,然后将文件标记为已成功传输到文件中,尽pipe该文件并未真正写入服务器。 这可能发生吗?
如何读取进程? 看来,当Unison正在读取/ mnt时断开连接时,它总是失败,错误消息是/ mnt已经完全清空(好!)。 但是有没有什么情况可以得到这样的信息:只有部分/ mnt中的数据丢失,然后错误地认为这些文件已被删除?
编辑:再读一遍Unison手册,我知道“安装点”参数。 但是,手动声音的方式,在检测到更新后,Unison只检查一次挂载点的存在。 所以如果在文件传输过程中连接中断,我仍然可以看到出现问题的风险。
编辑2:本质上,我的问题是这样的 – 似乎没有答案 – 在fuseforge邮件列表中的问题: https ://sourceforge.net/p/fuse/mailman/message/1605382/