Exclua arquivos remotos que correspondam a arquivos locais ou exclua arquivos conforme eles são baixados

4

Digamos que tenhamos dois hosts producer e consumer e o seguinte processo:

  1. producer adiciona arquivos regularmente a /some/path .
  2. consumer extrai esses arquivos para seus próprios /some/path (por exemplo, via rsync ) e processa para eles.
  3. Precisamos agora de consumer para excluir os arquivos processados (e somente os arquivos processados) em ambos os hosts.

Pode (3) ser realizado com rsync ou um comando equivalente por consumer ?

Como alternativa, podemos ter consumer excluindo facilmente os arquivos de producer que são transferidos conforme processa a etapa (2)?

Observe que producer está sempre criando arquivos e queremos garantir que processemos cada arquivo em consumer uma vez e somente uma vez.

    
por Amelio Vazquez-Reina 26.10.2016 / 22:33

1 resposta

4

Em consumer você pode usar este comando rsync.

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

Então, quando o processo estiver concluído, o seu processo consumer excluirá o arquivo.

rm -f /some/path/file
    
por 26.10.2016 / 22:51