什么时候 -av 不是 rsync 的适当选项?

什么时候 -av 不是 rsync 的适当选项?

我从来没有真正学会使用rsync——每当我需要复制/同步时,我都会考虑它,然后决定不,我只会用scp

但这可能不是一个好主意,尤其rsync是对于更新备份。要是我知道怎么用就好了……每当我决定真的应该用它rsync完成某项同步工作时,我就会阅读大量的手册/互联网建议,被大量的选项弄得晕头转向,在真正得到我想要的结果之前,我尝试了其中的几种,然后很快就忘记我是怎么做到的了。

因此,为了获得用过的最后rsync,我正在寻找简单的经验法则。特别是,似乎“标准”用法通常涉及标志-a,手册称其表示“存档”,并列出了它的一些功能,但让我困惑的是,我为什么真的想要它们,特别是如果我可能有理由不是想要其中一些。

因此我的问题是:如果我养成了默认使用复制文件的习惯rsync -av,那么在出现这种情况时我应该注意什么情况?不是一个好主意?

答案1

你什么时候应该不是使用rsync -av

总结:当您不想要-a或提供的行为时-v,请不要使用这些选项!

此外,戈登·戴维森指出另一个例外:

如果您没有以 root 身份运行它(在目标系统上),或者源系统或目标系统之间的用户和组 ID 不匹配,您可能不想(/无法)保留用户、组、设备和特殊文件。

异种提出了一个观点添加-av

还有一些情况您可以添加到-av-av --delete将用镜像替换添加的备份(请小心使用(即先尝试使用-n|--dry-run),否则如果您匹配错误的目录,您的备份可能会被删除。

-v(增加详细程度)

先说简单的:-vrsync 手册页

 -v, --verbose               increase verbosity

这个效果非常直观。如果您不关心传输信息,请忽略它。

-a(存档模式)

好的,archive模式。为此,值得一读rsync 中的归档模式是什么?关于服务器故障。

Andrew 的回答很好列出了其包含的模式:

-r, --recursive 递归进入目录

-l, --links 将符号链接复制为符号链接

-p, --perms 保留权限

-t, --times 保留修改时间

-g, --group 保留组

-o, --owner 保留所有者(仅限超级用户)

-D 与 --devices --specials 相同

--devices 保留设备文件(仅限超级用户)

--specials 保留特殊文件

排除

-H, --hard-links 保留硬链接

-A, --acls 保留 ACL(隐含 -p)

-X, --xattrs 保留扩展属性

正如他指出的那样,非常适合备份;因为如果您正在备份,您会想要制作一份您正在备份的数据的精确副本,以及有关文件的信息。

那么为什么你不想使用-a呢?

一般来说,如果你处在不想要的境地-a,你就会知道。也许:

  • 您想从目录复制文件,但不复制其子目录(因此不行-r
  • 您要复制的符号链接是实际文件 =,因为您的目标文件系统不支持符号链接(否-l
  • 你不关心权限(否-p
  • 您想更新修改时间(否-t

最后一个可能是最明显的用例。

相关内容