Comment empêcher Rsync de chowner des fichiers transférés?


72

J'ai une configuration de connexion sshfs avec un système de fichiers distant sur un serveur Linux. Je fais une Rsync de mon serveur local au système de fichiers ftpfs. En raison de la nature de cette configuration, je ne peux chownrien faire du système de fichiers sshfs.

Quand je fais le Rsync, il essaie de chown tous les fichiers après les avoir transférés. Cela entraîne des erreurs de chown, même si les fichiers sont correctement transférés.

Avec Rsync, y a-t-il un moyen de lui dire de ne pas essayer de chown les fichiers? Si je rsync comme 1000 fichiers je me retrouve avec un journal de 1000 chown: permission denied (error 13)erreurs. Je sais que ces erreurs ne font pas de mal car la propriété des fichiers est déterminée par la configuration de sshfs elle-même. Mais ce serait bien de ne pas les avoir.

Réponses:


107

Vous utilisez probablement rsync comme ceci:

rsync -a dir/ remote:/dir/

L' -aoption selon la documentation est équivalente à:-rlptgoD

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

Vous voudrez probablement supprimer les options -oet -g:

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

Au lieu de cela, votre commande rsync devrait ressembler à ceci:

rsync -rlptD dir/ remote:/dir/

Ou, comme le souligne @glglgl :

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

Les autres options utilisées sont:

      -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

19
... ou juste-a --no-o --no-g
Glglgl

1
J'ai utilisé justement rsync -r --no-o --no-g /source/* /dest/et mon propriétaire et le groupe de fichiers de la destination ont encore été modifiés en fonction de la source. Des idées?
Ram Patra


5

N'utilisez pas l' -aoption, car elle inclura l' -poption qui conserve les autorisations. Pour cette situation, cela -rdevrait suffire.

Pour plus d'infos, voir man rsync.


4
Es-tu sûr de -pce que je veux éviter? La propriété est différente des autorisations, n'est-ce pas?
Jake Wilson

0

J'ai rencontré quelque chose de similaire dans lequel rsyncle propriétaire et le groupe de fichiers et répertoires ne sont pas synchronisés à partir d'un serveur distant. Pour corriger, j'ai copié sur le /etc/shadow, /etc/groupet les /etc/passwdfichiers.

Lorsque j'ai exécuté la rsynccommande ci-dessous, elle a fonctionné en ce sens qu'elle conservait les autorisations, les liens symboliques et la propriété.

J'avais configuré les clés SSH pour utiliser SSH sans mot de passe.

rsync -avpog user@10.1.x.x:/usr/local /usr
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.