首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何同步两个目录?

如何同步两个目录?
EN

Unix & Linux用户
提问于 2014-04-06 14:39:56
回答 1查看 2.9K关注 0票数 2

我想使用crontab来同步linux部分和windows部分之间的两个目录,如下所示:

代码语言:javascript
复制
24 9 * * * cp -r /home/fan/Data /media/T/Data

但是它将在原始数据目录中创建一个名为Data的目录,而不是从源目录复制缺少的文件。我在cp手册上找不到一个完美解决这个问题的正确选择。如何将丢失的文件(它们确实存在于目标目录)从src复制到dir。

顺便说一句,似乎需要安装T磁盘来运行复制命令,当我需要运行命令时,如何自动挂载磁盘(挂载命令应该以root的形式运行)。

如果命令有异常,我如何获得错误消息?

EN

回答 1

Unix & Linux用户

发布于 2014-04-06 15:08:48

使用rsync

代码语言:javascript
复制
24 9 * * * rsync -a /home/fan/Data/ /media/T/Data

在源目录的名称末尾添加额外的/将告诉rsync复制内容而不是完整的目录。rsync还将避免复制具有相同时间戳/大小的文件(即99.99%的情况下不需要复制的文件)。

另外,如果您在同一系统上同步文件,请考虑使用--inplace选项rsync来加快速度。从手册页:

代码语言:javascript
复制
--inplace
    This option changes how rsync transfers a file when its data needs to be
    updated: instead of the default method of creating a new copy of the file and
    moving it into place when it is complete, rsync instead writes the updated
    data directly to the destination file.

虽然这个选项有优点和缺点,但最大的缺点可能是,如果同步被中断,目标文件将处于不一致的状态,只能通过重新启动才能修复。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/123394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档