如何在不破坏符号链接的情况下 rsync chroot?

如何在不破坏符号链接的情况下 rsync chroot?

我想从 chroot 外部 rsync(备份)chroot 环境。为此,我首先制作 chroot 卷的 lvm 快照,然后对其运行 rsync。

这种方法的唯一问题是:chroot 内部的绝对符号链接现在指向外部 chroot 系统,当然不匹配。由于我想使用复制不安全链接,这会导致错误的链接解析。有没有办法让 rsync 解析来自主根目录之外的其他目录的符号链接,或者是否有其他方法来解决这个问题?

答案1

在执行 rsync 之前,您可以将绝对符号链接替换为相对符号链接。

答案2

将所有绝对符号链接更改为相对绝对是一个很好的解决方案,如果无法完成,则可以使用一种复杂且低效的方法来解决它,它sshfs有一个--transform_symlinks选项可以做到这一点。

您需要ssh在当前运行中设置单独的服务器或具有单独配置的用户sshd,并使用以下组合

Subsystem sftp internal-sftp

ChrootDirectory /path/to/jail

现在,如果您--copy-unsafe-link不关心保留符号链接或节省空间,您可以在监狱内运行 rsync chroot(复制静态链接rsync在那里,运行nscd绑定安装 /var/run/nscd/var/run/nscd并从同步中排除两者和该 rsync 二进制文件(您可能必须绑定安装/dev和/或proc以及使用--one-file-system))

相关内容