심볼릭 링크를 깨지 않고 chroot를 재동기화하는 방법은 무엇입니까?

심볼릭 링크를 깨지 않고 chroot를 재동기화하는 방법은 무엇입니까?

chroot 외부에서 chroot 환경을 rsync(백업)하고 싶습니다. 이를 위해 먼저 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/dev동기화에서 두 가지 모두와 rsync 바이너리를 제외합니다(바인드 설치 및/또는 proc이를 사용해야 할 수도 있음 --one-file-system).

관련 정보