it-swarm.com.de

Wie kann man verhindern, dass Rsync übertragene Dateien chowniert?

Ich habe eine SSHFS-Verbindung mit einem Remote-Dateisystem auf einem Linux-Server eingerichtet. Ich mache einen Rsync von meinem lokalen Server zum ftpfs-Dateisystem. Aufgrund der Art dieses Setups kann ich im sshfs-Dateisystem nichts chown.

Wenn ich Rsync mache, versucht es, alle Dateien zu chownen, nachdem es sie übertragen hat. Dies führt zu Chown-Fehlern, obwohl die Dateien einwandfrei übertragen werden.

Gibt es bei Rsync eine Möglichkeit, es anzuweisen, die Dateien nicht zu chownen? Wenn ich 1000 Dateien synchronisiere, erhalte ich ein Protokoll mit 1000 chown: permission denied (error 13) Fehlern. Ich weiß, dass es nichts schadet, diese Fehler zu bekommen, da der Besitz der Dateien durch die sshfs-Konfiguration selbst bestimmt wird. Aber es wäre schön, sie nicht zu bekommen.

73
Jake Wilson

Sie führen wahrscheinlich rsync wie folgt aus:

rsync -a dir/ remote:/dir/

Die Option -alaut Dokumentation entspricht: -rlptgoD

      -a, --archive    archive mode; equals -rlptgoD (no -H,-A,-X)

Sie möchten wahrscheinlich die Optionen -o Und -g Entfernen:

      -o, --owner                 preserve owner (super-user only)
      -g, --group                 preserve group

Stattdessen sollte Ihr Befehl rsync ungefähr so ​​aussehen:

rsync -rlptD dir/ remote:/dir/

Oder als @ glglgl darauf hinweist:

rsync -a --no-o --no-g dir/ remote:/dir/

Die verbleibenden Optionen sind:

      -r, --recursive             recurse into directories
      -l, --links                 copy symlinks as symlinks
      -p, --perms                 preserve permissions
      -t, --times                 preserve modification times
      -D                          same as --devices --specials
          --devices               preserve device files (super-user only)
          --specials              preserve special files
110
aculich

Übergeben Sie nicht -o oder eine der anderen Optionen, die dies implizieren.

Verwenden Sie nicht das -a Option, da sie die -p Option, die die Berechtigungen behält. Für diese Situation ist die -r sollte genug sein.

Weitere Informationen finden Sie unter man rsync.

5
Sven

Ich bin auf etwas Ähnliches gestoßen, bei dem rsync den Eigentümer nicht behielt und die Gruppe von Dateien und Verzeichnissen von einem Remote-Server synchronisiert wurde. Zur Korrektur habe ich die Dateien /etc/shadow, /etc/group Und /etc/passwd Kopiert.

Als ich den Befehl rsync unten ausführte, funktionierte er dahingehend, dass Berechtigungen, symbolische Links und Eigentumsrechte beibehalten wurden.

Ich hatte SSH-Schlüssel eingerichtet, um passwortloses SSH zu verwenden.

rsync -avpog [email protected]:/usr/local /usr
0
pbroderi31