如何实现两台机器之间某目录实时自动同步?

2014-08-11 09:42:21 +08:00
 582033
因为rsync + crontab无法做到实时,请问有没有更好的工具或方案?
4390 次点击
所在节点    问与答
23 条回复
yiaya
2014-08-11 09:45:02 +08:00
看到标题本来想进来说金山快盘的,结果看到内容里“rsync+…”这种完全不知所云的高大上词汇,还是羞愧地忍住了。
qingting
2014-08-11 09:46:00 +08:00
试试btsync
582033
2014-08-11 09:48:47 +08:00
@yiaya 金山快盘需要先同步到金山服务器,也没法做到实时吧;更何况金山没有linux server用的客户端.
Dropbox也被墙了。
582033
2014-08-11 09:50:59 +08:00
@qingting 需要非GUI的..不好意思没描述清除
qq103436685
2014-08-11 09:56:37 +08:00
写程序监控苛目录的变化,再自动同步。
uio
2014-08-11 10:08:13 +08:00
multiple1902
2014-08-11 10:12:22 +08:00
首先要分清单向同步和双向同步。rsync 只能做到单向同步。我在电脑上使用 unison 实现双向同步,但它需要保存额外元信息,也就是它要在别的地方记录同步状态和历史。

在 Server Fault 上看到一个近乎实时的单向同步方法,简单说就是结合了 inotify(监控文件改动)和 rsync。请参考 http://serverfault.com/questions/148665/linux-is-it-possible-to-sync-two-directories-in-real-time 提到的 lsyncd。
lijinma
2014-08-11 10:25:06 +08:00
单相同步,试试这个?很简单

https://github.com/jedrichards/grunt-rsync
rrfeng
2014-08-11 10:39:10 +08:00
inotify + rsync 基本满足需求。
merlin852
2014-08-11 10:46:17 +08:00
我看 “实时” 只有NFS,SMB之类的共享服务了,各种同步都有时差的
ipconfiger
2014-08-11 10:46:43 +08:00
inotify + rsync 或者 +btsync

用pyinotify可以很简单的搞一个脚本出来,用supervisor跑成服务即可
liunan1321
2014-08-11 10:57:25 +08:00
inotify + rsync+1
xarrow
2014-08-11 11:01:19 +08:00
BitTorrent Sync 你值得拥有
hexor
2014-08-11 11:13:38 +08:00
你这需求 也就是文件夹只保存在一台机器上就可以了吧 无论怎么样 都是修改的同一个位置
lu18887
2014-08-11 11:36:38 +08:00
svn+hook ? git+hook 我首先想到这个
phperstar
2014-08-11 11:37:44 +08:00
目测我一直使用的是sersync+rsync,是可以支持实时同步的呀
althoughghgh
2014-08-11 12:54:04 +08:00
Dropbox 我用那个 OpenerDNS 好像就不用翻墙了
Android 客户端也可以,
582033
2014-08-11 13:36:32 +08:00
@merlin852 同步过程的时差可以忽略

@rrfeng 嗯,现在比较多的貌似是inotify + rsync的方案,

@lu18887 hook的方式不行,因为被同步的目录是在外网服务器,没法主动获取到文件是否更新了

@phperstar 嗯,跟楼上的notify + rsync一样

谢谢大家.
donnior
2014-08-11 13:38:45 +08:00
btsync,同步时延非常小,还支持内网
582033
2014-08-11 14:39:12 +08:00
https://gist.github.com/anonymous/2bd1676ca95281a42d37

自己用python的pyinotify库加rsync命令简单写了个脚本来同步,省去配置inotify的步骤

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/127147

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX