Observe que, se você estiver em um link lento ou o servidor estiver sobrecarregado, a ferramenta usada para copiar não será o gargalo e qualquer forma de cópia ficará lenta de qualquer maneira.
Isso deve fornecer o uso básico para copiar entre o computador local e o servidor remoto: http://oreilly.com/pub/h/38
Para copiar do computador local para um servidor remoto (é necessário substituir os caminhos, nome de usuário e endereço do host, é claro):
Observe que o @Piskvor deixou a -zopção de cópia local, uma vez que adiciona uma sobrecarga desnecessária. IMHO, você só deve usar -zao usar o rsync em um link de rede lento. Se copiar grandes quantidades de dados acima de 100Base-T, você pode ficar bem sem -z. Com uma conexão de rede rápida, o uso de compactação pode atrelar sua CPU e causar outros processos de fome.
tomlogic
@ tomlogic: Bom ponto - em outras palavras, não use -zpara copiar ou copiar LAN dentro de uma máquina; teste com e sem -zcópia na Internet (um ou outro pode ser mais rápido, dependendo de muitas coisas).
Piskvor saiu do prédio
1
Também deixaria de fora a compactação se você souber que seus arquivos já estão compactados, como sincronizar uma árvore de pastas cheia de JPEGs, pois não há nada a ganhar.
quebra de linha
Nota: -e sshagora é o padrão para hosts remotos, portanto, não é necessário passar a opção explicitamente.
Bem, IIRC, ambos estão usando os algoritmos de compressão do SSH, pelo menos para operações de rede.
Piskvor saiu do prédio
0
Na sua configuração, o rsync provavelmente é suficiente ... mas, por exemplo, se houver muitos arquivos pequenos, pode ser mais rápido tar os arquivos primeiro do que transferi-los e depois via rsync. Isso ocorre porque a transferência das permissões do proprietário, de data e hora, é um pouco mais pesada que o próprio arquivo, se o arquivo for pequeno. O Tar mesclará todas essas informações em um arquivo e o rsync copiará blocos maiores.
Ou melhor ainda, se nenhuma segurança for necessária, use tar e nc:
No destino, prepare um daemon de recebimento, descompacte e descompacte:
nc -l -p 12345 | pigz -d | tar xvf -
Na fonte, tar tudo, compactar em paralelo e enviá-lo para o destino:
-z
opção de cópia local, uma vez que adiciona uma sobrecarga desnecessária. IMHO, você só deve usar-z
ao usar o rsync em um link de rede lento. Se copiar grandes quantidades de dados acima de 100Base-T, você pode ficar bem sem-z
. Com uma conexão de rede rápida, o uso de compactação pode atrelar sua CPU e causar outros processos de fome.-z
para copiar ou copiar LAN dentro de uma máquina; teste com e sem-z
cópia na Internet (um ou outro pode ser mais rápido, dependendo de muitas coisas).-e ssh
agora é o padrão para hosts remotos, portanto, não é necessário passar a opção explicitamente.Outra palavra:
scp
Para ofertas únicas, o scp é útil. Se houver muitos arquivos, o rsync é uma boa ideia. Se uma conexão cair, o rsync poderá continuar de onde parou.
Eu sabia que o rsync tinha compressão (
-z
), e acabei de aprender que o scp também (-C
).fonte
Na sua configuração, o rsync provavelmente é suficiente ... mas, por exemplo, se houver muitos arquivos pequenos, pode ser mais rápido tar os arquivos primeiro do que transferi-los e depois via rsync. Isso ocorre porque a transferência das permissões do proprietário, de data e hora, é um pouco mais pesada que o próprio arquivo, se o arquivo for pequeno. O Tar mesclará todas essas informações em um arquivo e o rsync copiará blocos maiores.
Ou melhor ainda, se nenhuma segurança for necessária, use tar e nc:
No destino, prepare um daemon de recebimento, descompacte e descompacte:
Na fonte, tar tudo, compactar em paralelo e enviá-lo para o destino:
fonte