我有一个文件夹 a/ 和一个远程文件夹 A/。
我现在在 Makefile 上运行类似的内容:
get-music:
rsync -avzru server:/media/10001/music/ /media/Incoming/music/
put-music:
rsync -avzru /media/Incoming/music/ server:/media/10001/music/
sync-music: get-music put-music
当我制作同步音乐时,它首先获取从服务器到本地的所有差异,然后相反,将所有差异从本地发送到服务器。
仅当将来有更新或新文件时,此功能才非常有效。如果有删除,则不会执行任何操作。
在 rsync 中,有 --delete 和 --delete-after 选项来帮助完成我想要的,但事实是,它不适用于 2 路同步。
如果我想删除syn上的服务器文件,当本地文件被删除时,它可以工作,但是如果由于某种原因(稍后解释)我有一些文件不在服务器中但存在于本地并且它们被删除了,我想在本地删除它们而不是服务器复制(正如它所发生的那样)。
问题是我有 3 台机器:
- desktop
- notebook
- 家庭服务器
因此,有时,服务器会有通过笔记本同步删除的文件,例如,当我与桌面(已删除的服务器文件仍然存在)运行同步时,我希望这些文件被删除而不是被删除。再次复制到服务器。
我想这只有通过数据库和操作跟踪才能实现:P
有更简单的解决方案吗?
谢谢。
尝试齐奏:http://www.cis.upenn.edu/~bcpierce/unison/ http://www.cis.upenn.edu/%7Ebcpierce/unison/
Syntax:
unison dirA/ dirB/
Unison 会询问当文件不同时该怎么做,但您可以使用以下接受默认(不冲突)选项的命令来自动化该过程:
unison -auto dirA/ dirB/
unison -batch dirA/ dirB/
根本不问任何问题,并写入输出有多少文件被忽略(因为它们冲突)。
注意:我不再使用 Unison(我使用 NextCloud,它不能解决原始用例)。但请注意rsync
不是为双向同步而设计的,而unison
is. unison
可能有它的错误(就像任何其他软件一样)和它的缺陷。我很惊讶它现在似乎得到了积极的维护(上次我看的时候我想我认为它看起来已经死了),但我不确定现在的状态如何。我不需要双向文件同步器,因此可能有更好的选择。
注2:我现在正在使用Mutagen https://mutagen.io/出于某些目的。它仍然没有完全涵盖问题的用例,但它确实实现了双向同步。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)