Rsync 未正确复制符号链接

Rsync 未正确复制符号链接

我有一个 rsync 将一些 rpm 从一台服务器复制到另一台服务器,但问题是符号链接没有在接收服务器上正确创建。

我的 rsync 选项是-avz --force --deletemunge symlinks = no在 rsyncd.conf 中设置的。不知道我到底在这里缺少什么。

例如在 server-1-rsync-sender 上我有

test.rpm -> /var/www/html/repo/Package/test.rpm

在 Server-2-rsync-receiver rsycn 上创建

test.rpm -> var/www/html/repo/Package/test.rpm

编辑 #1 完整 rsync 命令

RSYNC_OPTIONS='-lavz --force --delete'

rsync $RSYNC_OPTIONS * rsync://${RSYNC_USER}@${rpm_server}:/yum >>/var/log/rsync_sync.log 2>&1

查看日志时,它显示应对正确的符号链接

编辑 #2 rsyncd.conf

[yum]
path = /var/www/html/repo
use chroot = no
max connections = 100
auth users = rpms
hosts allow = ***********
secrets file = ***********
uid = apache
gid = nobody
list = yes
read only = no
munge symlinks = no

我相信它是 munge 符号链接和 chroot 的组合,因为两者都已关闭。似乎当两者都设置为 no rsync 时会删除第一个/

答案1

找到了这个问题的解决方案。如果您从 rsyncd.conf 中删除 munge links 选项,然后更改 chroot = yes,您的符号链接将顺利迁移。

尽管这将打开一个可能的安全漏洞,任何东西都可以进行符号链接,并且没有 munge links 和 chroot 旨在保护的保护措施。因此,使用此解决方案将是非常特定于环境的

相关内容