运行以下命令:
/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