Retomar o Rsync após ser interrompido e os dados podem ser alterados

Retomar o Rsync após ser interrompido e os dados podem ser alterados

Usei o comando "Rsync" para transferir grande quantidade de dados, do sistema de arquivos para o nfs (cerca de 1Tera).

Depois de um tempo, o computador desligou e a transferência foi cancelada (demorou cerca de 10 horas para a transferência de 600G).

Parte do sistema de arquivos carregado foi alterada/adicionada pelos usuários. Quero saber que se eu usar o Rsync novamente, sem deletar a transferência parcial, ele saberá ignorar a transferência dos arquivos e recarregar o que foi alterado.

Ps se houver opção de retomar o Rsync, os arquivos transferidos serão ignorados muito mais rápido do que foram carregados na primeira vez? Fiquei preocupado com isso, pois demorei 10 horas para transferir 600G e espero que o próximo Rsync seja muito mais rápido.

Editar: aparentemente não posso comentar as respostas... então para @Kusalananda usei rsync -rtzvx.

Responder1

Você não usou as -aopções, portanto as propriedades de usuários e grupos, nem as permissões, não foram preservadas. No entanto, os carimbos de data e hora foram devido ao uso de -t.

Ao reiniciar o rsync, ele não poderá usar os metadados acima para determinar se o arquivo no destino é o mesmo que na origem. Se você estiver com sorte, poderá usar --size-only, que informa ao rsync para assumir que o arquivo é idêntico se o tamanho for o mesmo; isso geralmente só funciona corretamente para itens como arquivos de log ou fotos.

No entanto, as coisas podem não ser tão ruins quanto você imagina: o rsync fará a soma de verificação de cada arquivo na origem e no destino, e somente se a soma de verificação mostrar uma diferença os blocos diferentes serão transferidos. Ou seja, nem todo o arquivo é transferido novamente, apenas os blocos alterados são transferidos. Este é o ponto forte do rsync: otimizar o uso da largura de banda da rede ao custo de mais E/S de disco.

Obviamente, isso pressupõe que o rsync esteja sendo transferido pela rede para outro host. Se o sistema de arquivos NFS de que você fala for montado localmente, então o rsync provavelmente não é a ferramenta para isso, pois o rsync usará muito mais largura de banda da rede ao verificar os arquivos. Além disso, o rsync muda para --whole-fileo modo ao fazer transferências locais, pois não faz sentido primeiro verificar todo o arquivo de origem e destino e depois copiar a origem para o destino.

Em geral, eu recomendaria o uso de, -ase possível. Pode ser necessário combiná-lo --numeric-idsse tiver usuários diferentes na origem e no destino; se você tiver os mesmos usuários, mas os IDs podem ser diferentes, NÃO use --numeric-ids, o rsync mapeará os IDs de acordo com o nome.

informação relacionada