Eu tenho uma pasta sendo sincronizada (espelhada) remotamente, usando o comando synchronize -mirror -delete remote
, sobre FTP.
A pasta que estou sincronizando contém 209.068 arquivos e 19.079 diretórios, e assim, mesmo que seja apenas para verificar se tudo está sincronizado, demora muito tempo.
A maneira como parece que o WinSCP faz isso, leva 1 arquivo por vez e verifica se está atualizado. Se não for, faz o upload.
Esse processo leva uma eternidade. Arquivos de 210K, com um ping de pelo menos 50ms, o que significa cerca de 3 horas de apenas comparando arquivos! Nem mesmo sincronizando. (não levando em consideração o tempo real de manuseio)
Então, eu queria saber se talvez haja uma maneira de compará-lo em lote (pedir metadados para um arquivo de 100 por vez) ou talvez criar um buffer de 100 solicitações por vez, o que seria muito mais rápido (cerca de 100 vezes mais rápido), o que seria de 1,8 minutos em vez de 3 horas.
Se não, talvez haja um software diferente que eu possa usar e tenha um desempenho melhor nesse tipo de tarefa?
Editar: Por que acho que ele faz 1 arquivo por vez?
Ao executar o comando sync, esta é a saída que estou vendo:
E:\sync\a.txt -> \Sync\a.txt
Menos de um segundo depois:
E:\sync\b.txt -> \Sync\b.txt
E assim por diante, cada arquivo mostra, na ordem do diretório, uma parte de um segundo após o outro
Edit2: correção
- Ao sincronizar uma pasta, ela é enviada por arquivo.
- Ao verificar se uma pasta está sincronizada, ela vai de pasta em pasta.
Minhas informações anteriores estavam incorretas, minhas desculpas.