Estou transferindo os arquivos do Linux para o Windows 7 por meio de um compartilhamento montado (o compartilhamento é montado no Windows no Linux). Estou copiando muitos dados (ou seja, quase um TB) da antiga para a nova máquina na minha LAN . Já sou infeliz o suficiente para ter apenas 100 MBit. Naturalmente, usei cegamente o rsync, mas depois de um dia me perguntava por que parecia tão lento. A ativação do medidor de progresso mostrou uma taxa de transferência de cerca de 2 MB / s.
Então, peguei um arquivo grande razoável (800 MB) e acompanhei o tempo de transferência (1):
cp : 05:33
scp (2): 06:33
rsync : 21:51
1) apaguei os arquivos entre cada execução
2) scp via localhost para a mesma máquina Linux diretamente no compartilhamento; completamente inútil, mas forneceu um medidor de progresso
Os testes foram tão simples quanto
(cp|scp|rsync) <source> <destination>
Nenhum argumento especial, exceto host / porta para scp. Eu até tentei o -W
switch para rsync, mas cancelei após dez minutos. O rsync é 3.0.3 rodando em Lenny. Ser capaz de interromper o processo de cópia a qualquer momento e continuar me leva ao rsync, mas agora acho que preciso seriamente reconsiderar esse requisito.
Como é possível uma diferença tão grande?
Atualização / Resolvido:
Graças ao rschuler , consegui resolver o problema: use o daemon rsync em vez da montagem smb por razões de eficiência. O referido DeltaCopy funciona, mas é preciso prestar atenção em algumas coisas
- é um bom invólucro da GUI, mas se algo der errado, é bom saber como corrigi-lo. Parece que inseri minhas credenciais de usuário, nas quais executar o serviço rsync, estava errado na primeira vez, mas a GUI não me permitiu definir uma nova. Eu descobri que estava sendo executado como um serviço e foi capaz de definir as credenciais apropriadas lá
- Necessário adicionar manualmente a porta ao firewall para permitir conexões
- Gosto pessoal: garanta que os compartilhamentos sejam protegidos por senha ou, se estiverem sem, talvez garanta que o serviço não seja iniciado automaticamente pelo Windows; apenas no caso de
- O binário rsync empacotado não é uma porta nativa do Windows, mas baseia-se no cygwin. No entanto, a DLL cygwin contida não manipula UTF8 corretamente e desconfigura caracteres não-ascii. Obtenha uma DLL corrigida em http://www.okisoft.co.jp/esc/utf8-cygwin/ .
Depois disso, a transferência classificada saltou de 2 MB / s para ~ 8 MB / s; absolutamente fantástico!
fonte
-W
switch deve ignorar issoRespostas:
(o compartilhamento é montado no Windows no Linux)
Esse é o seu problema. O rsync está rolando somas de verificação sobre o destino. As janelas compartilham. Você está puxando todos os dados pela rede para calcular as somas de verificação. (Possivelmente mais de uma vez).
O que você precisa fazer é ter o rsync em execução nas duas máquinas. Dessa forma, apenas as diferenças (e somas de verificação) serão transferidas pelo cabo de rede. DeltaCopy é um rsync com janelas. Tem documentos bons o suficiente para você continuar.
Veja a resposta votada para esta pergunta para uma explicação melhor por que eu acho que você pode estar usando mal o rsync.
fonte