rsync behält den Verzeichnisbesitz auch mit -a nicht bei

12

Ich verwende diesen rsync-Aufruf, um mein Home-Verzeichnis zu sichern:

rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"

In der rsync-Manpage heißt es, dass -a -g und -o (neben anderen Optionen) impliziert, wodurch der Besitz erhalten bleiben soll. Allerdings ist mir aufgefallen, dass ein Verzeichnis, unter dem $BACKUP_MNTPOINT/$USER_HOMEes nicht existiert , mit root: root-Besitz erstellt wird, anstatt mit dem richtigen. (Dies geschieht nur mit Verzeichnissen direkt darunter $BACKUP_MNTPOINT/$USER_HOME). Warum das?

$BACKUP_MNTPOINTist ein lokales Laufwerk. $BACKUP_MNTPOINT/$USER_HOMEhat die richtigen Eigentumsrechte und Berechtigungen. Weder mit einem Schrägstrich beenden $USER_HOMEnoch $BACKUP_MNTPOINT.

Sowohl das Quell- als auch das Zieldateisystem sind XFS und das Ausführen mkdir $BACKUP_MNTPOINT/$USER_HOMEerstellt ein Verzeichnis mit dem erwarteten Eigentümer.

kralyk
quelle
1
Welches Dateisystem ist $BACKUP_MNTPOINTund mit welchen Optionen ist es gemountet? Tritt dies nur für das übergeordnete ( $BACKUP_MNTPOINT/$USER_HOME) Verzeichnis oder für alle erstellten Verzeichnisse auf? Tun $BACKUP_MNTPOINTund $USER_HOMEenden mit einem /?
Terdon
Ich benutze XFS für beide /homeund das Backup-Laufwerk. Bisher denke ich, dass es nur für die übergeordneten Verzeichnisse passiert ist. Weder mit einem Schrägstrich beenden $BACKUP_MNTPOINTnoch $USER_HOME. BEARBEITEN: Ich kann jetzt bestätigen, dass es nur in den Verzeichnissen unten passiert$BACKUP_MNTPOINT/$USER_HOME
kralyk
Hat $BACKUP_MNTPOINT/$USER_HOMEdas die richtigen Berechtigungen, aber keine Unterverzeichnisse? Bitte bearbeiten Sie Ihre Frage und fügen Sie diese Details hinzu. Stellen mkdir $BACKUP_MNTPOINT/$USER_HOME/fooSie außerdem klar , ob ein Verzeichnis erstellt wird, das Ihrem Benutzer gehört, wenn Sie dies manuell tun.
Terdon
Ja, mkdir $BACKUP_MNTPOINT/$USER_HOME/fooerstellt ein Verzeichnis mit dem Besitz des Benutzers.
Kralyk
Wäre wirklich nett, relevante Informationen von zu sehen strace(wie in einer Pseudo-Antwort angegeben).
Pavel Šimerda

Antworten:

18

Ich hatte ein ähnliches Problem beim rsyncSichern meines Systems auf meinem Server. Ich benutzte:

rsync -aAXSHPr \
-e ssh \
--rsync-path="sudo /usr/bin/rsync/" \
--numeric-ids \
--delete \
--progress \
--exclude-from="/path/to/file/that/lists/excluded/folders.txt" \
--include-from="/path/to/file/that/lists/included/folders.txt" \
/ USER@SERVER:/path/to/folder/where/backup/should/go/

Die Lösung ist, dass es nicht wirklich ein Problem gibt. Ich vermute, dass Sie den rsyncVorgang abgebrochen haben , nachdem Sie festgestellt haben, dass Ordner mit falschen Berechtigungen erstellt wurden. Der springende Punkt ist, dass rsyncnur dann die Berechtigungen eines übergeordneten Ordners festgelegt werden, wenn alle Unterordner und Dateien davon synchronisiert wurden.

lord.garbage
quelle
1
Wow, das ist mir überhaupt nicht eingefallen, schön gesehen, danke.
Kralyk
0

Führen Sie möglicherweise rsync über strace / truss aus und prüfen Sie, ob Sie einen Fehler vom Systemaufruf chown () erhalten, und bestätigen Sie, dass chown () den richtigen Pfad und die richtige UID / GID hat.

Jez
quelle
Ein guter Kommentar, aber keine Antwort.
Pavel Šimerda