Rsync 使用绝对路径

Rsync 使用绝对路径

我有两台 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/

相关内容