Como manter o caminho completo com o rsync?

64

Ao fazer backup com o rsync, como faço para manter a estrutura de diretórios completa?

Por exemplo, o servidor remoto é saturno , e eu quero fazer backup de Saturno 's / home / UDI / arquivos / imagens para um diretório local chamado de backup .

Quero ter (localmente) backup / home / udi / files / pictures em vez de backup / pictures .

Adam Matan
fonte

Respostas:

76

Use a opção -Rou --relativepara preservar o caminho completo.

Dentrasi
fonte
2

Outro caso de uso relacionado comum é o de manter uma parte selecionada da árvore de diretórios /./, por exemplo, se você quiser:

backup/files/pictures

você pode escrever:

rsync --relative /home/udi/./files/pictures backup

A mágica /./diz por rsynconde começar a criar diretórios.

Ciro Santilli adicionou uma nova foto
fonte
Isso funcionou para mim! A mágica é ./uma construção Linux ou específica para rsync? Apenas tentando obter algumas dicas sobre esse comportamento.
flow2k 23/09
@ flow2k apenas rsync magic, para POSIX é redundante.
Ciro Santilli quinta-feira,
1

Com o rsync do Cygwin Windows, e assumindo que o rsync remoto esteja apontando para a raiz, eu faria:

rsync -vtrz --delete server::rsyncid/home/udi/files/pictures /cygdrive/d/backup/home/udi/files

Isso colocará o conteúdo do diretório de imagens remotas em / backup / home / udi / files / pictures. Presumivelmente, a sintaxe no unix seria semelhante.

JR

John Rennie
fonte
Não é útil porque precisamos reproduzir toda a hierarquia de diretórios no lado local antes de executar o comando rsync.
Ludovic Kuty