Como rsync um chroot sem quebrar links simbólicos?

4

Eu gostaria de rsync (backup) um ambiente chroot de fora do chroot. Para isso, primeiro faço um instantâneo lvm do volume chroot e, em seguida, execudo o rsync.

O único problema com esta abordagem: Symlinks que dentro do chroot são absolutos estão agora apontando para o sistema chroot externo e obviamente não estão combinando. Como gostaria de usar links não seguros para cópias, isso leva a uma resolução de links falsa. Existe uma maneira de fazer o rsync resolver links simbólicos de outro diretório que a raiz principal ou existe outra maneira de resolver isso?

    
por Silvia 03.10.2012 / 19:10

2 respostas

3

Você pode substituir seus links simbólicos absolutos por outros relativos antes de fazer o rsync.

    
por 03.10.2012 / 23:04
2

Mudar todos os links simbólicos absolutos para parentesco é definitivamente uma boa solução, se não for possível, uma maneira complicada e ineficiente em torno dele que poderia funcionar é usar sshfs que tem uma opção --transform_symlinks para fazer exatamente isso.

Você precisaria definir um servidor ssh separado ou um usuário com uma configuração separada no sshd atualmente em execução e usar uma combinação de

Subsystem sftp internal-sftp

e

ChrootDirectory /path/to/jail

Agora, se você é --copy-unsafe-link e não se preocupa em preservar links simbólicos ou economizar espaço, você pode simplesmente executar o rsync chrooted dentro da cadeia (copie um rsync estaticamente vinculado, execute nscd , < em> bind-mount /var/run/nscd e exclui ambos os /var/run/nscd e aquele binário rsync da sincronização (talvez você tenha que vincular-montar /dev e / ou proc e usar --one-file-system ) )

    
por 04.10.2012 / 00:05