Rsync 从 /home/*/ 拉取到同一目录

Rsync 从 /home/*/ 拉取到同一目录

运行以下命令:

/usr/bin/rsync -avuz --rsh=ssh --temp-dir=/tmp --port=55556 --rsync-path=/usr/bin/rsync REMOTEIP:/home/*/mail/ /home/*/mail > /var/log/rsync/test.log 2>&1

结果是rsync: mkdir "/home/*/mail" failed: No such file or directory (2)

无论如何,是否可以使用本地的扩展路径来获取用户名而不是文字*

我只想从所有主目录中提取邮件目录

答案1

您只能有一个目标目录。就您而言,共同目标是/home/。因此,要在本地目标中复制远程路径,请使用-R(长版本--relative)选项:

... --relative REMOTEIP:/home/*/mail/ /

您可能希望添加--no-implied-dirs此内容以避免 rsync 尝试复制给定目录(但不是任何子目录)的属性。首先检查-n以确保这将达到您的预期。

答案2

下面的方法也可以实现它,但是 meuh 的方法更干净。

/usr/bin/rsync -avuz --rsh=ssh --temp-dir=/tmp --port=55556 --include='*/mail' --include='*/mail/**' --exclude='*/*' --rsync-path=/usr/bin/rsync REMOTEIP:/home/ /home > /var/log/rsync/test.log 2>&1

相关内容