rsync: Wie führt man eine sichere bidirektionale lokale <-> Webdav-Synchronisierung durch?

750
user2734

Ich habe zwei Verzeichnisse:

  • /Volumes/webdav/ - Angehängtes Remote-WebDAV-Laufwerk
  • ~/files - lokale Kopie

Ich möchte eine 2-Wege-Synchronisierung (manuell) zwischen ihnen durchführen. Was mache ich:

$ rsync --exclude='.gitconfig' --exclude='*~' --exclude='.DS_Store' -varP ~/files/* /Volumes/webdav/ --delete 

Und umgekehrt (/ Volumes / webdav / * ~ / files /).

Fragen

  1. Was ist der Unterschied zwischen ~/files/ /Volumes/webdav/und ~/files/* /Volumes/webdav/? Im ersten Fall bekomme ich:

    building file list ... 4498 files to consider 

    in zweiter Sekunde:

    building file list ... 1382 files to consider ... 
  2. Sync-Protokolle zeigen häufig Folgendes:

    building file list ... 4498 files to consider .es/ .es/�\#232а�\#200�\#202а Саи�\#206�\#202а.doc 20480 100% 0.00kB/s 0:00:00 (xfer#1, to-check=4486/4498) .hb/ .hb/25-512.png 39036 100% 5.98MB/s 0:00:00 (xfer#2, to-check=4482/4498) .hb/icon-white-menu.png 1546 100% 1.47MB/s 0:00:00 (xfer#3, to-check=4481/4498) .hb/icon-white.png 26858 100% 0.00kB/s 0:00:00 (xfer#4, to-check=4480/4498) .pt/Untitled/ .pt/session0/ .pt/speed1/ .pt/speed1/Session File Backups/ .var/ .var/DSC_6545.jpg 4595455 100% 92.58MB/s 0:00:00 (xfer#7, to-check=4198/4498) .var/book_edit.pdf ... 

    Rsync zeigt also einige Fortschritte beim Übertragen von Dateien, aber wenn ich den Befehl erneut starte, wird dasselbe angezeigt - es werden dieselben Dateien übertragen, dieselben Ordner durchlaufen usw. Wird tatsächlich etwas übertragen? Wenn ja, warum immer?

Vielen Dank.

1
Sie zeigen nicht die vollständige Zeichenfolge. Verwenden Sie "-u"? Ist die Auflösung der Dateizeit auf dem Zieldatenträger der Quelle? Verwenden Sie "--modify-window"? AFH vor 7 Jahren 0
Der Unterschied zwischen "~ / files /" und "~ / files / *" besteht darin, dass die zweite nicht ~ / files /.* einschließt. Rekursion "rsync" schließt alle Dateien in einem Unterverzeichnis ein, einschließlich Punktdateien, jedoch Verwenden von `~ / files / *` schließt die Punktdateien in `~ / files /` _before_ rekursion aus; Punkt-Dateien aus nachfolgenden Rekursionsstufen _will_ werden eingeschlossen. AFH vor 7 Jahren 0
@AFH danke dir! Ich habe den vollständigen String in der ursprünglichen Nachricht angezeigt: `rsync --exclude = '. Gitconfig' --exclude = '* ~' --exclude = '. DS_Store' -varP ~ / files / * / Volumes / webdav / - -delete` Zur Auflösung der Dateizeit: Für mich ist das schwer zu sagen, da es sich um einen WebDAV-Server eines Drittanbieters handelt. Auf meiner Seite verwende ich macOS. Ich habe auch Unison-Dateisynchronisierer ausprobiert, und es schlägt auch fehl mit 'Der Inhalt der Datei wurde während der Übertragung geändert', was auf einige Probleme mit Zeitstempeln hinweisen könnte, denke ich. user2734 vor 7 Jahren 0
Normalerweise verwende ich 'ls --full-time', um die Zeiten zu vergleichen, aber ich habe das Gefühl, dass es bei OSX keine Option gibt. Das andere Programm, das Zeiten mit Pikosekundenauflösung anzeigt, ist `stat`, das Sie mit jeder beliebigen Datei und deren Sicherungskopie ausprobieren können. Hier erfahren Sie, ob die Zeitstempel identisch sind oder nicht, wie viele Sekunden mit --modify-window verwendet werden sollen: 1 oder 2 sollten ausreichen. AFH vor 7 Jahren 0

0 Antworten auf die Frage