Algumas dicas para usar o 'rsync' em várias situações de tempo limite

3

Eu tenho duas máquinas A , B na mesma rede de baixa largura de banda. A deseja copiar os arquivos para B o mais rápido possível, mas pode ter o tempo limite esgotado após t segundos. Se o processo de transferência atingir o tempo limite, ele poderá ser reiniciado até 3 vezes. O tamanho médio do arquivo é de cerca de 50 MB, com variação bastante alta (alguns arquivos se aproximam de 1 GB).

Atualmente, estou usando scp com a opção de compactação -C e, mesmo com t=300 , estou esgotando o tempo limite. O processo tentará novamente até 3 vezes, mas normalmente será atingido o tempo limite porque scp terá que ser iniciado novamente a cada vez . Infelizmente, o aumento do passado t=300 não é uma opção por causa de alguma lógica de aplicativo.

Estou pensando em usar rsync com -P flag , que na página man, parece que fará com que rsync mantenha o progresso de tentativas anteriores em um temp arquivo e aplicar o seu algoritmo de transferência delta para o resultado parcial da última vez. Você recomendaria rsync sobre scp normal nesta situação ou há alternativas mais rápidas ? Eu sei que rsync usa scp por padrão para copiar arquivos, mas eu não acho que scp tenha funcionalidade parcial de progresso (eu gostaria de estar errado nisso).

    
por Kevin Johnson 13.02.2017 / 19:46

1 resposta

2

Primeiras coisas primeiro: rsync não usa scp para copiar arquivos. (Pode usar ssh como transporte, talvez seja isso o que está confundindo você?)

Se você tem um comando como este:

scp -pr /source/path/* remotehost:/destination/

Você pode substituí-lo um por um por isso:

rsync -a /source/path/* remotehost:/destination/

Nesta instância específica, eu otimizaria o * no caminho de origem como este, e incluiria os --partial --progress --verbose sinalizadores para melhorar a capacidade de reinicialização (e para ver o que está acontecendo). Observe que eu mantenho o / à direita na origem; isso é importante para rsync :

rsync -avP /source/path/ remotehost:/destination/

Você pode ver o que aconteceria sem isso, incluindo o sinal --dry-run .

    
por 13.02.2017 / 22:59

Tags