如何在 Linux 上实现两个本地目录的同步(或增量拷贝)?

2020-03-01 17:06:27 +08:00
 yao990

一台安装了 centos7 的电脑,有目录 A 和目录 B,目录 A 中有二三四级目录及文件若干,现需要每天将目录 A 中的所有文件增量同步到目录 B 中,使用 cp -nr 命令无法实现,请问如何解决?

13359 次点击
所在节点    Linux
64 条回复
April5
2020-03-01 23:09:02 +08:00
用 rsync 吧,写个脚本以后要备份到远程说不定也可以用
jin7
2020-03-01 23:17:55 +08:00
linux rsync 非常好 windows 用 beyond compare
longyueshier
2020-03-01 23:25:41 +08:00
看了下你这个需求就是两个文件之间的增量数据同步问题,大家都把问题想复杂了。
其实很简单就可以完成你的要求
写一条 crontab 定时执行 cp 就好了,还是强制覆盖 B 目录文件
10 8 * * * cp -f 文件绝对路径 /A/* 文件绝对路径 /B/
july1995
2020-03-01 23:38:23 +08:00
没人推荐 syncthing 嘛,我自己用这个同步我自己电脑的文件到 nas,配置好以后不用管,有文件更改,自动同步。开源,免费,全平台。
flowercoder
2020-03-02 00:24:22 +08:00
linux 磁盘格式还是很重要的
一般我是 xfs 或是 ext4,其他的一般都不会选。
mmixxia
2020-03-02 00:42:56 +08:00
rsync
xiaobai555
2020-03-02 07:12:54 +08:00
可以考虑 inotify 配合 rsync
littlezzll
2020-03-02 08:20:05 +08:00
initifywait+rsync
fox0001
2020-03-02 08:58:05 +08:00
我的家用服务器就是 rsync 进行备份的
RRRoger
2020-03-02 09:49:05 +08:00
rsync
fitmewell
2020-03-02 09:54:04 +08:00
换个思路,用 git 或者 svn 本地仓库?
faywong8888
2020-03-02 11:28:24 +08:00
rsync +1,最好的易用的增量同步方案。
CasparLi
2020-03-02 11:52:32 +08:00
rsync 啊....
encro
2020-03-02 12:05:53 +08:00
@july1995
我前面推荐了啊,syncthing 全平台还差了一个 iOS,我的 blog 里面也有推荐 Seafile 和 nextcloud 倒是全平台的。
yao990
2020-03-02 16:51:39 +08:00
@encro 已拜读,我昨天用 rsync 解决了这个问题,问题本质是同一台机器里的两个不同目录之间的增量复制,但是由于两个目录分别位于两个硬盘上,源目录是 xfs 格式,目标目录是 ntfs,而 cp 在 ntfs 上有个时间戳问题,导致复制出错,而 rsync 不存在这个问题。
yao990
2020-03-02 16:52:59 +08:00
@April5 昨天用 rsync 解决了,备份到远程比这个容易,因为我一直以为 rsync 只能用于异地备份
yao990
2020-03-02 16:53:50 +08:00
@longyueshier cp 在不同文件系统中存在时间戳问题会导致复制出错,最后用 rsync 解决了
yao990
2020-03-02 16:54:35 +08:00
@july1995 你可能理解错了,我这个需求是同一个机器上两个不同目录之间的同步,现已经用 rsync 解决了
yao990
2020-03-02 16:55:50 +08:00
@flowercoder 本地磁盘都是 xfs,而那个 ntfs 是移动硬盘,要在不同的地方读取,为了方便,就用了 ntfs
yao990
2020-03-02 16:56:35 +08:00
@fitmewell 用 rsync 已经解决了,等下次再有类似需求的时候试试 git

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

https://tanronggui.xyz/t/648863

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

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

© 2021 V2EX