rsync --include-from 不工作

Gua*_*eño 5 backup rsync

手册页没有这方面的例子。我很难告诉 rsync 只在那些文件中包含一些文件。我不明白为什么您必须排除才能包含,为什么rsync不包含包含文件中的内容,并且其他所有内容都将被排除。

这是我的脚本:

rsync -ruv --rsh=ssh --include-from=zz-rsync-test.prod.incl /usr2/subdir remoteSrv:/tmp/.
Run Code Online (Sandbox Code Playgroud)

这是我的包含文件,它不起作用:它复制了太多:它复制了 /usr2/subdir(包括subdir目录,奇怪)中我不想要的所有内容。我只想复制data/text_forms目录中的 per、42f 和 xml 文件。

+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
Run Code Online (Sandbox Code Playgroud)

并且以下不起作用,它不会复制任何内容:

- *
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
Run Code Online (Sandbox Code Playgroud)

并且以下内容也不起作用,它不会复制任何内容:

- *
+ data/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
Run Code Online (Sandbox Code Playgroud)

并且以下内容也不起作用,它不会复制任何内容:

- *
+ data/
+ data/text_forms/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
Run Code Online (Sandbox Code Playgroud)

以下也不起作用:

+ */
+ /data/text_forms/*.per
+ /data/text_forms/*.42f
+ /data/text_forms/*.xml
+ /data/text_forms/*.xml.*
- *
Run Code Online (Sandbox Code Playgroud)

以下都不起作用:

+ /data/
+ /data/text_forms/
+ /data/text_forms/*.per
+ /data/text_forms/*.42f
+ /data/text_forms/*.xml
+ /data/text_forms/*.xml.*
- *
Run Code Online (Sandbox Code Playgroud)

Gua*_*eño 17

我找到了解决方案。我花了整整两天时间才找到它。我希望这能帮助你不花那么多时间。

第一个问题是包含subdirin的子目录/usr2/subdir,我不希望包含整个目录,我只是希望它成为基本目录,所以它需要在末尾有一个斜杠,如 in /usr2/subdir/,所以我的新命令看起来喜欢:

rsync -ruvv --rsh=ssh --include-from=zz-rsync-test.prod.incl /usr2/subdir/ remoteSrv:/tmp/.
Run Code Online (Sandbox Code Playgroud)

请注意,我v在命令行 ( -ruvv) 中添加了一个额外选项,以获取有关在运行命令时排除或包含的内容的更多详细信息。固定基本目录和额外的v构建正确的包含文件会更容易一些:

+ data/
+ data/text_forms/
+ data/text_forms/*.per
+ data/text_forms/*.42f
+ data/text_forms/*.xml
+ data/text_forms/*.xml.*
- *
Run Code Online (Sandbox Code Playgroud)

所有的+行都必须放在- *, 特别是目录之前,因为即使我不想直接在这些目录中获取文件,我也必须明确包含要扫描的每个目录。我做了一个添加 adata/anyTestFile1和 a的测试,data/text_forms/anyTestFile2因为我不确定那些是否会被捡起,但他们没有,所以它正在做我想做的......最后。

  • 谢谢,遇到同样的问题。你的帖子对我帮助很大:-) (2认同)