Ich habe eine Situation, in der ich eine Datei habe sagen TEST.csv in einem Quellsystem. Ich möchte diese Datei in meinem Zielsystem synchronisieren. Wenn in TEST.csv etwas Neues hinzugefügt oder alte Daten geändert werden, wird auch die Datei im Zielsystem geändert. Das Quellsystem ist nur für rsync verfügbar, daher kann ich außer rsync kein anderes Protokoll verwenden. Jetzt möchte ich nur den geänderten Teil in TEST.csv separat bekommen. Wie kann ich es tun?finde nur einen anderen Teil einer Datei über rsync
Antwort
Wenn ich Sie richtig verstehe, wollen Sie nur den geänderten Teil der TEST.csv
anstelle der ganzen Datei übertragen, ja? Wenn das der Fall ist, glaube ich nicht, dass dies möglich ist. Dies ist gerade aus man rsync
:
The rsync remote-update protocol allows rsync to transfer just the differences between two sets of files across the network connection, using an efficient checksum-search algorithm described in the technical report that accompanies this package.
Der wichtigste Teil ist using an efficient checksum-search algorithm
- es läuft eine Prüfsumme gegen die lokalen und Remote-Datei, und wenn die Prüfsumme unterscheidet, überträgt er die Datei von der Quelle zum Ziel. Basierend auf einer Prüfsumme gibt es keine Möglichkeit zu sagen, welcher Teil der Datei geändert wurde und nur die Unterschiede zu übertragen.
Sie können ein lokales Versionierungstool verwenden, z. git
, und verwenden Sie dieses Tool, um die Unterschiede zwischen Ihren Sync-Zyklen zu erhalten. Wenn Sie das diff haben, können Sie es in einer Datei speichern, es über rsync übertragen und dann das patch
-Dienstprogramm auf dem Ziel verwenden, um dieses diff auf die TEST.csv
anzuwenden.
git
ist nicht erforderlich, Sie ein einfaches diff -u
auf der Quelle und ein patch
auf dem Ziel verwenden können, aber verwenden diff Sie eine altes TEST.csv
und eine neues TEST.csv
mit den neuen Änderungen zu verfolgen und dann diff
dagegen laufen . Mit git
bearbeiten Sie einfach die Datei mit den von Ihnen gewünschten Werkzeugen, und dann verwendet git seinen internen Mechanismus, um das korrekte Diffset für die Änderungen zu erstellen. Vergessen Sie nicht, die Änderungen hinzuzufügen und zu committen, nachdem das Diff übertragen wurde, so dass der nächste Zyklus ein sauberes Diff mit nur seinen eigenen Änderungen machen kann ;-)
- 1. OpenCSV liest nur einen Teil einer Datei
- 2. Nur einen bestimmten Teil einer Datei ändern
- 3. Webtorrent - Kann ich nur einen kleinen Teil einer Datei säen?
- 4. Rsync Backup Bash-Skript Leseoptionen aus einer anderen Datei
- 5. Nur einen Teil einer binären ZIP-Datei lesen
- 6. Wie überschreiben nur einen Teil einer Datei in C++
- 7. Batch-Datei-Variable Teil einer anderen Variablen
- 8. einen Teil mit einer anderen Teilkette ersetzen
- 9. Verwenden Sie einen Teil einer Spalte in einer Datei als Suchbegriff in einer anderen Datei
- 10. Wie liest man einen Teil einer Datei und speichert sie?
- 11. Erledige einen Teil einer Datei in Python
- 12. Pycharm: nur einen Teil meiner Python-Datei ausführen
- 13. WCF. Benachrichtigen Sie einen Teil über den Tod eines anderen
- 14. einer Bitmaske auf einen Teil einer Reihe mit anderen
- 15. Warum analysiert mein Code nur einen Teil der XML-Datei?
- 16. Wie verwenden Sie einen DeflateStream für einen Teil einer Datei?
- 17. Kann ich nur einen bestimmten Teil einer Tabellenansicht anklickbar machen?
- 18. Nur rsync-Berichtsdateien anzeigen, die aktualisiert wurden
- 19. MapReduce-Job nur auf einem Teil einer HDFS-Datei ausführen
- 20. Verschieben einer Datei auf einen anderen Server
- 21. Ändern nur einen Teil der Objekteigenschaften
- 22. rsync über ssh kann keinen großen Remote-Host (einen anderen Container in Docker) finden
- 23. Rails Aktualisieren einer Datensatzspalte aktualisiert nur einen Teil der Zeichenfolge
- 24. Laden Sie einen Teil einer Datei mit HttpWebRequest ohne Header
- 25. Rsync über SSH - Timeout in ssh oder rsync?
- 26. Wie ersetzen Sie einen Teil einer Trennlinie in einer Datei?
- 27. xjc nur für einen Teil des Schemas
- 28. aus einer anderen Liste aller möglichen Teil
- 29. bash finde eindeutige Zeilen in einer Datei
- 30. Datei mit rsync über mehrere Ebenen von SSH kopieren
Konnte meine Antwort Ihnen helfen? – EmilioMg