229 votes

Erreur rsync : échec de la mise en place des temps sur "/foo/bar" : Opération non autorisée

Je reçois une erreur déroutante de rsync et les premières choses que je trouve en faisant des recherches sur le web (ainsi que tous les chmod'ing habituels) ne le résolvent pas :

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 ce serait bien de s'en débarrasser.

0 votes

Non, juste un répertoire normal pour autant que je puisse dire.

0 votes

Je viens de rencontrer un problème similaire, bien que mon code d'erreur soit 22 : rsync : failed to set times on ... Argument non valide (22). Après quelques vérifications, il s'avère que mes fichiers étaient datés comme ayant été modifiés pour la dernière fois en 1956 ! Solution : toucher tous les fichiers, problème résolu :) "find . -print0 | xargs -0 touch "

0 votes

Je trouve que si vous avez également mis en place une tâche cron vers la même destination, cette erreur apparaîtra. Changer l'heure de la tâche cron (crontab) peut aider à contourner ce problème. Dans mon cas, je n'obtiens cette erreur que si je fais un rysnc manuel si j'ai également mis en place une tâche cron.

318voto

Jon Bright Points 6834

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 lui évitera d'essayer de définir des temps de modification sur les répertoires.

0 votes

Cette réponse m'a aidé à synchroniser entre mon mac et le stockage réseau. Merci.

9 votes

Le plus drôle, c'est que je synchronise ext3 à ext3, les deux systèmes d'exploitation sont des linux. Je n'ai jamais eu à utiliser ce commutateur avant. -O a fait l'affaire, mais j'aimerais ne pas avoir à l'utiliser.

3 votes

Merci. Il s'avère que certains hébergeurs VPS (par exemple xlshosting.nl) utilisent ceci en interne, ce qui peut poser des problèmes avec rsync.

95voto

anddam Points 537

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

Puisque cette réponse a été votée et qu'elle a donc été, je l'espère, utile à quelqu'un, je la développe pour la rendre plus claire.

La raison pour laquelle cela se produit est que rsync essaie probablement de définir un temps de modification arbitraire (mtime) lors de la copie des fichiers.

Afin de faire cela, le système de Darwin utime() exige que l'uid effectif du processus d'écriture soit le même que l'uid du fichier ou celui du super utilisateur, voir page de l'utime opengroup . Vérifier cette discussion sur la liste de diffusion rsync comme référence.

10 votes

Même chose sous Linux (Debian Squeeze dans mon cas)... Si je ne suis pas le propriétaire du répertoire cible, rsync donne le message d'erreur "failed to set times". (Avoir les droits d'écriture sur le répertoire n'est pas suffisant).

1 votes

Je suis coincé dans le même problème. Jusqu'à monter NTFS avec uid=user.

3 votes

Cette erreur a disparu pour moi lorsque j'ai changé le propriétaire du répertoire que j'essayais d'affecter (sur le serveur distant) en utilisant la commande rsync au même utilisateur que celui qui essaie de se connecter via rsync sur mon Bash local script. En d'autres termes : J'essayais d'écrire à /remote/path/to/foo/bar sur le serveur distant avec cette commande : rsync -avzP --exclude '.DS_Store' /local/path/to/foo/bar/ user1@1.2.3.4:/remote/path/to/foo/bar et j'ai obtenu les mêmes messages d'erreur qui ont disparu lorsque j'ai fait user1 le propriétaire de /remoe/path/to/foo/bar comme ça : $ chown -R user1 /remote/path/to/foo/bar

8voto

Lud Akell Points 21

Comme @racl101 l'a commenté dans une réponse, ce problème pourrait être lié à l'élément suivant propriétaire du dossier . La commande rsync doit être effectuée par le même utilisateur que celui du propriétaire du dossier. Si ce n'est pas le même, vous pouvez le changer.

chown -R userCorrect /remote/path/to/foo/bar

3voto

ripah Points 31

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

3voto

shintaroid Points 384

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X