Exclua arquivos remotos que correspondam aos arquivos locais ou exclua arquivos à medida que são baixados

Exclua arquivos remotos que correspondam aos arquivos locais ou exclua arquivos à medida que são baixados

Digamos que temos dois hosts producere consumero seguinte processo:

  1. produceradiciona arquivosregularmentepara /some/path.
  2. consumerpuxa esses arquivos parapróprio /some/path(por exemplo, através de rsync) eprocessoseles.
  3. Precisamos consumeragora excluiros arquivos processados ​​(e apenas os arquivos processados) emambos os anfitriões.

(3) pode ser realizado com rsyncum comando equivalente por consumer?


Alternativamente, podemos consumerexcluir facilmente os arquivos producerbaixados enquanto processa a etapa (2)?


Observe que producerestamos sempre criando arquivos e queremos ter certeza de que processaremos cada arquivo consumeruma vez e apenas uma vez.

Responder1

Em consumervocê pode usar este comando rsync.

rsync -az --remove-source-files user@producer:/some/path/ /some/path/

Então, quando o processo for concluído, faça com que seu consumerprocesso exclua o arquivo.

rm -f /some/path/file

informação relacionada