我有一个 rsync 将一些 rpm 从一台服务器复制到另一台服务器,但问题是符号链接没有在接收服务器上正确创建。
我的 rsync 选项是-avz --force --delete
我munge 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 旨在保护的保护措施。因此,使用此解决方案将是非常特定于环境的