我正在购买一个外部硬盘来备份我家里的电脑(终于!!)。我希望使用 rsync。我见过一个示例,它确实(或似乎)做到了我想要的。就像这样:
rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups
然而,当查看 rsync 文档和示例等时,事情开始看起来比这复杂得多。网络、守护进程和术语,天哪!
我认为只要我从计算机同步到火线连接的外部驱动器,上述操作都不是必需的。我这样假设错了吗?事情真的会比这个无害的命令更复杂吗?
答案1
Rsync 在本地驱动器上工作正常。但是,如果它检测到本地路径,它会自动进入 --whole-file 模式,该模式不会复制差异,而只是将源文件复制到目标文件上。不过,Rsync 仍会忽略根本没有更改的文件。当源和目标之间的带宽很高时(例如两个本地磁盘),这比读取两个文件然后仅复制更改的部分要快得多。
答案2
我使用 rsync 和以下容易记住的标志“glop”、“trunc”和“v”。
rsync -gloptrunc $srcdir $dstdir
简要指南:
- g - 保留群组所有权信息
- l – 将符号链接复制为符号链接
- o - 保留所有者信息
- p-保留权限
- t-保留时间戳
- r - 递归遍历目录
- u - 更新,跳过任何较新的文件
- [n] - 不,不要这样做,而是进行一次试运行
- c - 校验和,在可能的情况下尝试对文件块进行校验(*)
注意:在本地文件系统上,这将被覆盖,而是复制整个文件。 - v-详细
我总是运行上述程序以确保它有效,然后在对结果满意后删除“n”标志。
上述组合的主要特点:
- 我在两个(或更多)服务器之间双向运行它,从而实现双向同步。您可以更新当时认为是主服务器的那个服务器。
- 它允许任何一方成为主人,重要的需要注意的是,如果您想删除某个东西,您必须在两者上都删除它,以确保它真的消失了,否则它会回来。
我用它来保持两台机器同步,或者保持子目录同步(比如备份到 USB 驱动器)。
正如之前其他帖子所述,如果您处理的是本地驱动器,则“校验和”实际上可能会被强制关闭。
在极少数情况下,我不得不添加其他参数来解释远程机器上的登录帐户的变化、端口的变化,甚至指定“rsync”在远程主机上的位置......但这些并不直接适用于您的问题。
答案3
这些都不是必需的,您可以直接使用 rsync,而不需要任何守护进程或任何其他类型的配置!
只需使用 rsync 命令就可以了。
答案4
根据 rsync 命令中的路径来判断,我是否可以正确地认为您正在使用 Mac OS X?
就我个人而言,我会选择使用 Time Machine(如果您使用 Leopard)或 Carbon Copy Cloner(http://www.bombich.com/software/ccc.html) 使用 rsync。
比尝试修改自己的脚本要容易得多。一个优点是 Time Machine 和 CCC 都会为您提供增量备份。