Wie kann ich mit rsync persönliche Dateien auf einer externen Festplatte oder einem Netzwerklaufwerk sichern, ohne dass es zu Problemen mit den Berechtigungen kommt?

Wie kann ich mit rsync persönliche Dateien auf einer externen Festplatte oder einem Netzwerklaufwerk sichern, ohne dass es zu Problemen mit den Berechtigungen kommt?

Hintergrund

Was ist die „richtige“ Methode, um mit rsync Daten zu sichern? Der Grund, warum ich nach der „richtigen“ Methode frage, ist, dass meine bisherigen Erfahrungen mit rsync zu Problemen mit Berechtigungen, Datei-/Ordnermasken und Zeitstempeln geführt haben. Daher soll diese Frage klären,Wie kann ich rsync zum Sichern von Daten verwenden, ohne auf Probleme mit Berechtigungen, Datei-/Ordnermasken oder Zeitstempeln zu stoßen, insbesondere wenn rsync auf einem Windows-System verwendet wird?.

Ein weiterer Grund für diese Frage ist, dass ich nicht in meinevorherige Ausgabewo ich auf keine Dateien auf meinem externen Laufwerk zugreifen konnte, das mit rsync über Cygwin gesichert war. Das war ein Albtraum, weil ich tatsächlich Daten auf meinem Haupt-PC verloren hatte und versuchte, sie aus dem Backup wiederherzustellen.

Nachfolgend sind ähnliche Probleme aufgeführt, die bei der Verwendung von rysnc aufgetreten sind:

Ich habe nur mittelmäßige Kenntnisse über die Verwendung von rsync und habe die unten aufgeführten Anleitungen zu Rate gezogen. Die größte Verwirrung bei der Verwendung von rsync entsteht jedoch durch Berechtigungen, Datei-/Ordnermaskierung, Posix usw.

Anforderungen/Annahmen

  • Ich möchte rsync im Zusammenhang mit „Backup“ und NICHT im Zusammenhang mit „Sync“ verwenden. Andere Benutzer, die Fragen zu rsync stellen, sind oft daran interessiert, Daten zu „synchronisieren“, um sicherzustellen, dass sie eine funktionierende Kopie der Dateien auf einem anderen PC synchronisiert haben. Meine Absicht ist jedoch nicht „Synchronisieren“, sondern einfach „Sichern“, sodass ich, falls meinem PC etwas zustößt, eine letzte Sicherungskopie erstellen und diese wiederherstellen kann.
  • Die Originaldateien, die gesichert werden müssen, können auf jedem Betriebssystem (z. B. Windows, Ubuntu, MacOS) vorhanden sein, hauptsächlich jedoch auf Windows.
  • Unter Windows wird rsync über das Windows-Subsystem für Linux (WSL) und NICHT über Cygwin verwendet.
  • Das Ziel für die Sicherung kann ein externes Laufwerk im Format NTFS, FAT32 oder exFAT oder ein Netzwerklaufwerk (z. B. Samba-Freigabe) sein.
  • Dies ist nicht erforderlich, aber die Verbindung zum Ziel kann über SSH hergestellt werden.

Meine aktuelle Methode und Probleme

Ich verwende rsync über das Windows-Subsystem für Linux (WSL) unter Windows 10. Nachfolgend sind Beispiele für Probleme aufgeführt, auf die ich gestoßen bin:

Beispiel 1:Funktioniert nicht

rsync -avhP --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

Bei dieser Methode werden die Dateien NICHT übertragen und es treten Fehler wie die folgenden auf:

rsync: chgrp "/mnt/my_usb_mount/ProjectA/src" failed: Operation not permitted (1)

Und

rsync: mkstemp "/mnt/my_usb_mount/ProjectA/src/.mydata.json.6cfTCf" failed: Operation not permitted (1)

Beispiel 2:Teilweise funktionsfähig

rsync -avhP --no-p --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

oder

rsync -avhP --no-p --chmod=ugo=rwX --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

Diese Methode der Verwendung von rysnc führt dazu, dass Dateien übertragen werden, aber die Zeitstempel (erstellt, geändert, aufgerufen) alle auf den Zeitpunkt der Übertragung eingestellt sind. Wenn ich den Befehl rsync erneut ausführe, werden alle Dateien als geändert erkannt und aufgrund des falschen Zeitstempels erneut übertragen. Darüber hinaus erhalte ich Fehlermeldungen wie die folgenden:

rsync: chgrp "/mnt/my_usb_mount/ProjectA/src" failed: Operation not permitted (1)

Beispiel 3:Funktioniert einwandfrei.

sudo rsync -avhP --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

Diese Methode funktioniert einwandfrei, ich verstehe jedoch nicht, warum ich verwenden muss sudo? Liegt es daran, dass ich rsync unter Windows über WSL verwende? Muss ich verwenden, sudowenn ich Dateien von einem Linux-PC (z. B. Ubuntu) sichern würde?

Obwohl Beispiel 3 eine funktionierende Lösung ist, habe ich noch viele Fragen:

  • Woher weiß ich, wann sudoes erforderlich ist?
  • Wann verwende ich --no-pbzw.--chmod=ugo=rwX
  • Was passiert, wenn ich keine Nutzungsberechtigung habe sudo?
  • Funktioniert es, wenn ich Dateien auf einem Netzwerklaufwerk sichere?
  • Was ist, wenn ich SSH verwende?
  • Wenn ich rsync von Windows über WSL verwende, werde ich jemals auf seltsame Berechtigungs- oder Datei-/Ordnermaskenprobleme stoßen, wenn ichvorher haben?

Antwort1

Ntfs und fat kümmern sich nicht um Linux-Berechtigungen, Sie müssen Ihr Backup auf einer Partition ext4 machen

oder machen Sie ein Backup und komprimieren Sie es in tar.gz und dekomprimieren Sie es dann in einer Linux-Systemdatei und stellen Sie es wieder her

verwandte Informationen