RSYNC 从目标路径中排除目录

RSYNC 从目标路径中排除目录

我想排除远程服务器上已经存在的文件夹(即test/xyz),并且我想rsync从我有test1/xyz文件夹的源服务器运行,所以我不想覆盖xyz远程端的文件夹。

test/xyz另外,如果源服务器上删除/添加了任何文件,这些文件将在远程服务器上删除/添加,但不包括该文件夹,我也想更新这些文件。

我已尝试使用以下命令来排除远程目录,但它会复制远程目录上的排除目录和文件。

rsync -ave ssh --exclude=remotedirectory root@IPADDRESS:remotepath --delete sourcepath

有什么想法吗?

答案1

你有2种方法。

  1. 只是--exclude=dir,无论是本地还是远程,都没有区别,因为无论如何您都不想同步它。
  2. 使用--rsync-path='rsync --exclude=dir'和远程 rsync 将通过该排除选项执行。

答案2

这应该有效:

rsync -av --delete --exclude=/xyz/ sourcepath/ root@IPADDRESS:remotepath/

当“xyz”出现在“sourcepath”的根目录中时,这将排除它,是一个目录(末尾的“/”确保这一点)。

源目录和目标目录的尾部斜杠很重要。如果没有那个第二rsync run 将创建一个新文件夹“remotepath/sourcepath”,这可能不是您想要的。

另外,根据您的描述,您的源参数和目标参数是错误的(但困惑可能是我的)。

相关内容