Angenommen, wir haben zwei Hosts producer
und consumer
den folgenden Prozess:
producer
fügt Dateien hinzuregelmäßigZu/some/path
.consumer
zieht diese Dateien nachseine eigene/some/path
(zB überrsync
) undProzesseihnen.- Wir müssen
consumer
jetzt löschendie verarbeiteten Dateien (und nur die verarbeiteten Dateien) inbeide Gastgeber.
rsync
Kann (3) mit oder einem gleichwertigen Befehl durch erreicht werden consumer
?
Können wir alternativ consumer
die Dateien, producer
die während der Ausführung von Schritt (2) heruntergeladen werden, einfach löschen?
Beachten Sie, dass producer
immer Dateien erstellt werden und wir sicherstellen möchten, dass wir jede Datei consumer
nur einmal verarbeiten.
Antwort1
Sie consumer
können diesen rsync-Befehl verwenden.
rsync -az --remove-source-files user@producer:/some/path/ /some/path/
Wenn der Vorgang abgeschlossen ist, lassen Sie Ihren consumer
Prozess die Datei löschen.
rm -f /some/path/file