web-dev-qa-db-fra.com

Erreur rsync: échec de la définition de l'heure sur "/ foo / bar": opération non autorisée.

Je reçois une erreur déroutante de la part de rsync et les premières choses que je découvre lors de recherches sur le Web (ainsi que toutes les modifications habituelles) ne résolvent pas le problème:

rsync: failed to set times on "/foo/bar": Operation not permitted (1)
rsync error: some files could not be transferred (code 23) 
  at /SourceCache/rsync/rsync-35.2/rsync/main.c(992) [sender=2.6.9]

Il semble fonctionner malgré cette erreur, mais il serait bien de s'en débarrasser.

171
dreeves

Si /foo/bar est sur NFS (ou éventuellement sur un système de fichiers Fuse), cela pourrait être le problème.

Quoi qu'il en soit, ajouter -O/--omit-dir-times à votre ligne de commande vous évitera de tenter de définir des temps de modification pour les répertoires.

258
Jon Bright

Le problème est probablement dû au fait que/foo/bar n'appartient pas au processus d'écriture sur un système darwin (OS X) distant. Une solution au problème consiste à définir un propriétaire adéquat sur le site distant.

Étant donné que cette réponse a été votée et qu'elle a donc, espérons-le, été utile à quelqu'un, je l'étends pour la rendre plus claire.

La raison en est que rsync tente probablement de définir une heure de modification arbitraire (mtime) lors de la copie de fichiers.

Pour ce faire, la fonction system utime () de darwin requiert que le processus d'écriture uid effectif soit le même que celui du fichier ou celui du super-utilisateur, voir page de l'opengroup utime . Vérifiez cette discussion sur la liste de diffusion rsync comme référence.

80
anddam

Le problème dans mon cas était que le "point de montage du récepteur" était mal monté. C'était en mode lecture seule (pour une raison quelconque). Il semblait que rsync copiait les fichiers, mais ce n'était pas le cas. J'ai vérifié mon fichier fstab et changé les options de montage en valeurs par défaut, remonter le système de fichiers et exécuter à nouveau rsync. Tout va bien alors.

2
ripah

J'ai eu le même problème. Pour moi, la solution consiste à supprimer le fichier distant et à laisser rsync créer à nouveau.

1
shintaroid

Cela m'est arrivé sur une partition de type xfs (rw,relatime,seclabel,attr2,inode64,noquota), où les répertoires appartenaient à un autre utilisateur du groupe auquel nous appartenions tous les deux. L'appartenance au groupe était déjà établie avant la connexion et l'ensemble de la structure de répertoires était accessible en écriture pour le groupe. J'avais exécuté manuellement Sudo chown -R otheruser.group directory et Sudo chmod -R g+rw directory pour le confirmer.

Je ne sais toujours pas pourquoi cela n'a pas fonctionné à l'origine, mais le fait de prendre possession avec Sudo chown -R myuser.group directory l'a corrigé. Peut-être lié au SELinux?

0
Sam Brightman

J'ai rencontré ce problème lorsque j'écris dans un système de fichiers qui ne gère pas (correctement) les temps - je pense que SMB partage ou FAT ou quelque chose du genre.

Quel est votre système de fichiers cible?

0
David Wolever

Cette erreur peut également apparaître si vous exécutez le processus rsync pour les fichiers non modifiés récemment dans la source ou la destination ... car il ne peut pas définir l'heure des fichiers récemment modifiés.

0
Gurdeep Singh

Il se peut que vous n'ayez pas de privilèges sur certains fichiers. À partir d'un compte d'administrateur, essayez "Sudo rsync -av". Vous pouvez également activer le compte root et vous connecter en tant que root. Cela devrait vous permettre d'arroser complètement votre système et de forcer brutalement votre rsync! ;-) Je ne sais pas si les attributs --extended-mentionnés ci-dessus vont aider, mais je les ai aussi ajoutés, juste pour faire bonne mesure.

0
captain