Publicando outra solução, já que o arquivo está sendo escrito aleatoriamente, quebra minha ideia de tail
. Pensar em rsync
pode ser promissor aqui, pois o rsync
pode operar usando um algoritmo de transferência delta, economizando tempo de transferência enviando apenas as partes alteradas de um arquivo. Se você executar rsync
em dois arquivos locais, o padrão será --whole-file
mode, que não é o que você deseja.
Sugerindo
rsync -av --inplace --no-whole-file /your/local/file.dat /your/remote/file.dat
... ou talvez (se a montagem CIFS não concordar com a transferência delta) use rsync
:
rsync -av --inplace --no-whole-file /your/local/file.dat remoteserver:/your/directory/file.dat
Assim, você executaria isso várias vezes enquanto seu arquivo de 200 GB estiver sendo preenchido. Cada vez que você o executa, ele atualiza o arquivo remoto de forma incremental. Isso deve funcionar mesmo quando o arquivo de origem estiver sendo atualizado aleatoriamente. Talvez você possa rodar isso a cada 15 minutos. Então, quando seu pid terminar, você o executaria mais uma vez, e seria apenas um delta incremental rápido.