我有一个文件夹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
当我制作sync-music时,它首先将所有差异从服务器发送到本地,然后将相反的内容从本地发送到服务器。
仅当将来只有更新或新文件时,此方法才能很好地工作。如果有删除,则不执行任何操作。
在rsync中,有--delete和--delete-after选项可以帮助实现我想要的功能,但事实是,它在2向同步中不起作用。
如果我想删除Syn上的服务器文件,则删除本地文件后,它可以工作,但是如果由于某种原因(稍后说明),我有一些不在服务器中但在本地存在的文件被删除,我想在本地删除它们,而不是服务器复制(发生这种情况)。
我在上下文中有3台机器:
- 桌面
- 笔记本
- 家庭服务器
因此,有时,服务器将具有通过笔记本同步删除的文件,例如,然后,当我与桌面运行同步时(已删除的服务器文件仍然存在),我希望这些文件被删除而不是被删除。再次复制到服务器。
我想这只有在数据库和操作轨迹下才有可能:P
还有更简单的解决方案吗?谢谢。