Elimine archivos remotos que coincidan con archivos locales o elimine archivos a medida que se descargan

Elimine archivos remotos que coincidan con archivos locales o elimine archivos a medida que se descargan

Digamos que tenemos dos hosts producery consumerel siguiente proceso:

  1. produceragrega archivosregularmentea /some/path.
  2. consumertira esos archivos asu propio /some/path(por ejemplo, a través de rsync) yprocesosa ellos.
  3. Ahora consumernecesitamos borrarlos archivos procesados ​​(y sólo los archivos procesados) enambos anfitriones.

¿Se puede lograr (3) con rsynco un comando equivalente mediante consumer?


Alternativamente, ¿podemos consumereliminar fácilmente los archivos producerque descarga mientras procesa el paso (2)?


Tenga en cuenta que producersiempre se están creando archivos y queremos asegurarnos de procesar cada archivo consumeruna vez y solo una vez.

Respuesta1

Puede consumerutilizar este comando rsync.

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

Luego, cuando se complete el proceso, haga que su consumerproceso elimine el archivo.

rm -f /some/path/file

información relacionada