Ist rsync eine gute Wahl für mein Projekt?
Ich muss:
- Dateien per SSH vom Quellordner in den Zielordner
kopieren,
- sicherstellen, dass alle Dateien kopiert wurden, - Quelldateien nach dem Kopieren löschen.
- Wenn ich einen Konfliktnamen habe, muss ich die Dateien umbenennen.
Es sieht so aus, als könnte ich folgende Option verwenden: --remove-source-files (um Quelldateien zu löschen)
Aber wie kann ich mit rsync Konflikte verwalten? Kann ich Regeln haben?
Anwendungsfall für mein Projekt:
Ich führe eine wissenschaftliche Berechnung auf Server A durch und die Ergebnisse werden in den Ordner "process" eingefügt. Für jede Berechnung habe ich ein Repository wie das folgende: / process / calc1.
Jetzt möchte ich das Repository "/ calc1" auf Server B übertragen (ich erhalte / process / calc1) und "calc1" von Server A löschen.
... Während einer anderen Berechnung erhalte ich "/ process / calc2" auf Server A, die idee ist auch "calc2" in "/ process /" verzeichnis auf server B zu verschieben, dann habe ich jetzt auf server B:
- / process / calc1
- / process / calc2
(und / process / auf server A ist leer).
Wie verwaltet rsync Konflikte (auf Server B), wenn ich nach einer neuen Berechnung einen anderen Ordner wie "/ process / calc1" auf Server A habe (wenn "/ process / calc1" bereits auf Server B vorhanden ist)?
Ist es möglich, Regeln mit rsync hinzuzufügen und "/ process / calc1" durch "process / calc1R2" auf Server B umzubenennen? Und so weiter (zB calc1R3)?
Vielen Dank.
quelle
Wie der Name schon sagt, wird rsync zum Synchronisieren von Dateien verwendet. Wenn "synchronisiert", bedeutet dies, dass die Dateien auf der Quelle und dem Ziel identisch sind. Das scheint nicht das zu sein, was du tun möchtest.
Anscheinend möchten Sie nur einige Dateien verschieben. Sie müssen dafür nicht rsync verwenden. Anscheinend verwenden Sie Linux oder BSD. Sie könnten mv -n über ssh verwenden. Die Option -n überschreibt keine vorhandenen Dateien. Dies ist nicht 100% automatisch. Ich sehe jedoch nicht, wie die Datei in Ihrem Fall bereits existieren könnte. Die Dateien werden von der Quelle zum Ziel kopiert und dann von der Quelle entfernt. Möchten Sie dieselben Berechnungen erneut ausführen? Erhalten Sie deshalb Dateien mit demselben Namen? Ich würde vorschlagen, eine Lauf- oder Chargennummer an den Ordnernamen anzuhängen. Das soll sowieso klar sein. Haben Sie Kontrolle darüber, wie der Ordner benannt wird? Noch mehr Details? Ich würde empfehlen, die Befehle in ein Bash-Skript oder ähnliches zu schreiben.
quelle
Verwenden Sie für SSH zusammenfassend Folgendes:
Alles wird in rsync (1) erklärt.
Um ein Skript für einen Cronjob zu erstellen und ssh automatisch ohne Passwort zu synchronisieren, schauen Sie auch in ssh-agent (1) nach.
quelle