web-dev-qa-db-fra.com

Comment empêcher Rsync de chowning les fichiers transférés?

J'ai une configuration de connexion sshfs avec un système de fichiers distant sur un serveur Linux. Je fais un Rsync de mon serveur local vers le système de fichiers ftpfs. En raison de la nature de cette configuration, je ne peux rien chown sur le 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 se traduit par des erreurs chown, même si cela transfère très bien les fichiers.

Avec Rsync, existe-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 cela ne fait rien de mal d'obtenir ces erreurs car la propriété des fichiers est déterminée par la configuration sshfs elle-même. Mais ce serait bien de ne pas les avoir.

73
Jake Wilson

Vous exécutez probablement rsync comme ceci:

rsync -a dir/ remote:/dir/

Le -a option selon la documentation est équivalent à: -rlptgoD

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

Vous souhaitez probablement supprimer le -o et -g options:

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

Donc, à la place, votre commande rsync devrait ressembler à ceci:

rsync -rlptD dir/ remote:/dir/

Ou comme @ glglgl le fait remarquer:

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

Les autres options utilisées sont les suivantes:

      -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

Ne passez pas -o ou l'une des autres options que cela implique.

12

N'utilisez pas le -a option, car elle inclura le -p option qui conserve les autorisations. Pour cette situation, le -r devrait suffire.

Pour plus d'informations, voir man rsync.

5
Sven

J'ai rencontré quelque chose de similaire par lequel rsync ne conservait pas le propriétaire et le groupe de fichiers et répertoires synchronisés depuis un serveur distant. Pour corriger, j'ai copié le /etc/shadow, /etc/group et /etc/passwd des dossiers.

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

J'avais configuré des clés ssh pour utiliser ssh sans mot de passe.

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