Eu tenho um arquivo de 500 GB que pretendo fazer backup remotamente. O arquivo muda frequentemente. Vou sincronizá-lo de uma área de trabalho para um servidor. Ambos podem executar o cliente ou servidor rsync.
Qual é o comando adequado para isso? As que eu tentei sofar estão demorando para sempre ou simplesmente agem de forma estranha.
Exemplo e resultados:
rsync -cv --partial --inplace --no-whole-file /desktop/file1 myserver.com::module/file1
Parece funcionar, mas somente se eu fizer duas vezes (?!). Além disso, lento.
O comando acima faz a soma de verificação nos dois computadores ou apenas no envio? Está correto de outra forma?
Respostas:
Nunca será rápido, porque o rsync terá que ler / somar o arquivo inteiro e ler 500 GB levará muito tempo, a menos que você o armazene em SSDs ou algo assim.
Experimentar
rsync -vhz --partial --inplace <file/server stuff>
.-c
significa que ele soma o arquivo inteiro antes de fazer transferências, em vez de usar o carimbo de data e hora para ver se ele foi alterado, o que significa ler o arquivo inteiro duas vezes. Se o carimbo de data e hora não estiver sendo alterado (deveria), você poderá apenastouch
o arquivo antes de executar o rsync.Se isso não estiver com script, você poderá adicioná
--progress
-lo para ver como está o desempenho enquanto é executado.fonte
--inplace
implica #--partial
Embora não seja rsync, dependendo do que você está tentando fazer, isso pode funcionar melhor. Eu estava fazendo uma tarefa de backup semelhante e foi definitivamente mais rápida.
Use o netcat para fazer um tubo de alcatrão de uma máquina para outra.
Na sua máquina de origem:
tar -cpv --atime-preserve=system . | nc -q 10 -l -p 45454
Você está criando um tarball preserva permissões e tempo e, em seguida, canaliza-o para o netcat na porta 45454
Na sua máquina de backup
nc -w 10 X.X.X.X 45454 | tar -xpv
X.X.X.X
= endereço IP local da sua máquina de origem.Para mim, isso funcionou bem. Ele rodava de 25 a 30 MB / s na LAN com fio, em oposição a 2-3 MB / s com o rsync. A desvantagem é: não sincroniza, apenas copia o que está na sua fonte. No entanto, para um backup que você está descrevendo - um arquivo de 500 GB - ele pode funcionar muito bem.
Você pode ter que fazer isso como root para evitar problemas de permissão ou pode ter sorte.
FWIW, eu aprendi inicialmente sobre isso aqui: http://www.screenage.de/blog/2007/12/30/using-netcat-and-tar-for-network-file-transfer/
fonte
tar
é melhor do quersync
quando você tem muitos arquivos pequenos para transferir. Usandonc
também melhora a taxa de transferência quando em uma conexão rápida, porque você não tem a sobrecarga de SSH-criptografia (que eu não preciso de uma conexão peer-to-peer)Para evitar a sobrecarga da rede, use o protocolo rsync e não o SSH. Por padrão, o rsync usa SSH ao especificar um URL como hostname: / path. Use rsync: // hostname / path em vez de usar o protocolo rsync mais rápido. Nenhum truque com tar / netcat é necessário dessa maneira. O algoritmo rsync delta deve ser muito mais rápido.
Veja também https://gergap.wordpress.com/tag/rsync/ para obter mais informações.
fonte