mwm*_*mwm 92 rsync sync file two-way
我有一个文件夹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
Run Code Online (Sandbox Code Playgroud)
当我制作同步音乐时,它首先获取从服务器到本地的所有差异然后相反,将所有差异从本地发送到服务器.
只有在将来只有更新或新文件时,这才能很好地工作.如果有删除,它什么都不做.
在rsync中有--delete和--delete-after选项来帮助实现我想要的东西但事情是,它不适用于双向同步.
如果我想删除syn上的服务器文件,当本地文件被删除时,它可以工作,但如果由于某种原因(后面解释)我有一些不在服务器但在本地存在并且被删除的文件,我想在本地删除它们而不是服务器复制(当它发生).
事情是我在上下文中有3台机器:
因此,有时,服务器将具有使用笔记本同步删除的文件,例如然后,当我与我的桌面运行同步时(删除的服务器文件仍然存在)我希望删除这些文件而不是再次复制到服务器.
我想这只能用于数据库和操作跟踪:P
更简单的解决方案?谢谢.
ale*_*lex 61
尝试Unison:http://www.cis.upenn.edu/~bcpierce/unison/
句法:
unison dirA/ dirB/
Unison询问文件不同时该怎么做,但您可以使用以下接受默认(非冲突)选项的以下内容自动执行该过程:
unison -auto dirA/ dirB/
unison -batch dirA/ dirB/ 根本不问任何问题,并写入输出忽略了多少文件(因为它们冲突).
小智 5
试试这个,
get-music:
rsync -avzru --delete-excluded server:/media/10001/music/ /media/Incoming/music/
put-music:
rsync -avzru --delete-excluded /media/Incoming/music/ server:/media/10001/music/
sync-music: get-music put-music
Run Code Online (Sandbox Code Playgroud)
我只是测试这个,它对我有用.我在Windows7(使用安装了rsync软件包的cygwin)和FreeNAS文件服务器之间进行双向同步(FreeNAS在预先安装了rsync软件包的FreeBSD上运行).
由于最初的问题还涉及台式机和笔记本电脑以及涉及音乐文件的示例(因此,他可能正在使用GUI),因此我还要提到迄今为止最好的双向,多平台,免费和开源程序之一:FreeFileSync。
它基于GUI,非常快速,直观,具有过滤功能和许多其他选项,包括远程连接,查看和交互管理“冲突”(例如,具有类似时间戳的文件)以及在双向传输,镜像和切换之间切换的功能。以此类推。