Por que o rsync aninha diretórios?

6

Eu tenho este cenário: dir1 /home/arek/ , dir2 /mnt/home/arek/ (montado com sshfs).

Quando emito: rsync -avz /mnt/home/arek /home/arek , obtenho /home/arek/arek com todo o conteúdo. Alguns diretórios estão corretos em /home , outros não. Não há links (nem duros nem simbólicos).

Alguém sabe o que está acontecendo e como me proteger?

    
por Darek 26.03.2011 / 02:30

2 respostas

8

rsync(1) é exigente sobre a barra . Tente isto:

rsync -avz /mnt/home/arek/ /home/arek

Veja a página principal para todos os detalhes.

Atualizar

Se um dos caminhos estiver montado via sshfs, sugiro usar rsync(1) de maneira diferente:

rsync -avzP -e ssh username@remotesystem:/home/arek/ /home/arek

(O -e ssh pode ser redundante neste ponto; rsync(1) usou como padrão rsh !)

O -P pede que as transferências de arquivos parciais sejam reiniciadas (muito útil nos links de rede que podem morrer) e mostra o progresso (que é útil nos links de rede, uma vez que são frequentemente mais lentas que as cópias de drive-para-drive).

Além disso, rsync(1) é muito inteligente ao fazer verificações hash em ambos os terminais quando invocado dessa forma - a largura de banda do disco para a CPU é muito melhor que o disco para ssh da rede para ssh para a largura de banda do driver do sistema de arquivos - assim você estará transferindo muito menos dados pela rede.

Considere: se você adicionar um byte único a cada arquivo, rsync(1) over sshfs será forçado a transferir o conteúdo de cada arquivo da origem para o destino. rsync(1) over ssh(1) em vez disso iniciará um rsync(1) no endpoint remoto e fará os cálculos de hash em ambos máquinas conforme necessário, e provavelmente transferirá apenas os últimos 8192 bytes de cada arquivo. / p>     

por 26.03.2011 / 02:34
0

Ele está copiando o diretório /mnt/home/arek para /home/arek , quando o que você deseja é copiar o conteúdo de /mnt/home/arek . Você pode obter esse comportamento adicionando uma barra ao nome do diretório de origem: rsync -avz /mnt/home/arek/ /home/arek . Sim, isso é um pouco estranho. Está documentado na página rsync , sob o título "USAGE", mas não é explicado de forma muito clara.

    
por 26.03.2011 / 02:35

Tags