我有两台 RHEL 7 服务器。
在我的源上我有以下目录
/sourcestuff/testresync
/sourcestuff/testresync/incl1
/sourcestuff/testresync/incl1/test1.txt
/sourcestuff/testresync/incl2
/sourcestuff/testresync/incl2/test2.txt
/sourcestuff/testresync/excl3
/sourcestuff/testresync/excl3/test2.txt
/sourcestuff/testresync/excl4
/sourcestuff/testresync/excl4/test2.txt
在我的目的地我有以下目录
/destinationstuff/testresync
/destinationstuff/testresync/incl1
/destinationstuff/testresync/incl2
/destinationstuff/testresync/excl3
/destinationstuff/testresync/excl4
我想要做的是将数据从我的源复制到我的目标,并从源中排除 /sourcestuff/testresync/excl3 和 /sourcestuff/testresync/excl4
我尝试过
rsync -av --relative /sourcestuff/testrsync/./ --exclude '/sourcestuff/testrsync/excl3/' --exclude '/sourcestuff/testrsync/excl4/' user@SERVERIP:/destinationstuff/testrsync
我已阅读过文档,其中 -exclude 选项依赖于源,但我尝试的所有 excl3 和 excl4 数据仍然会被传输。
我也尝试过其他方法,但没有效果
我希望我的目的地是这样的:
/destinationstuff/testresync
/destinationstuff/testresync/incl1
/destinationstuff/testresync/incl1/test1.txt
/destinationstuff/testresync/incl2
/destinationstuff/testresync/incl2/test2.txt
/destinationstuff/testresync/excl3
/destinationstuff/testresync/excl4
答案1
如您所知,当您使用时,通常会在目标位置重现类似--relative
的源路径,而要排除目录,则需要使用。/a/b/
/d
/d/a/b/
/a/b
--exclude /a/b/
但是,当您将 添加/./
到源路径时,就像/a/./b/
这样,只有点后的部分被复制,即您得到/d/b/
。 但是,排除路径也必须改变,仅为点后面的部分,--exclude /b/
。
因此,请将您的排除模式修改为类似于/excl3/
。