Löschen Sie Remotedateien, die mit lokalen Dateien übereinstimmen, oder löschen Sie Dateien, während sie heruntergeladen werden

Löschen Sie Remotedateien, die mit lokalen Dateien übereinstimmen, oder löschen Sie Dateien, während sie heruntergeladen werden

Angenommen, wir haben zwei Hosts producerund consumerden folgenden Prozess:

  1. producerfügt Dateien hinzuregelmäßigZu /some/path.
  2. consumerzieht diese Dateien nachseine eigene /some/path(zB über rsync) undProzesseihnen.
  3. Wir müssen consumerjetzt löschendie verarbeiteten Dateien (und nur die verarbeiteten Dateien) inbeide Gastgeber.

rsyncKann (3) mit oder einem gleichwertigen Befehl durch erreicht werden consumer?


Können wir alternativ consumerdie Dateien, producerdie während der Ausführung von Schritt (2) heruntergeladen werden, einfach löschen?


Beachten Sie, dass producerimmer Dateien erstellt werden und wir sicherstellen möchten, dass wir jede Datei consumernur einmal verarbeiten.

Antwort1

Sie consumerkönnen diesen rsync-Befehl verwenden.

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

Wenn der Vorgang abgeschlossen ist, lassen Sie Ihren consumerProzess die Datei löschen.

rm -f /some/path/file

verwandte Informationen