update remote exclude another rsync file-transfer

remote - rsync ubuntu



Error de rsync: no se pudieron configurar las horas en "/ foo/bar": operaciĆ³n no permitida (7)

El problema en mi caso era que el "punto de montaje del receptor" estaba incorrectamente montado. Estaba en modo de solo lectura (por alguna extraña razón). Parecía que rsync estaba copiando los archivos, pero no fue así. Comprobé mi archivo fstab y cambié las opciones de montaje a los valores predeterminados, volví a montar el sistema de archivos y ejecuté rsync nuevamente. Todo bien entonces.

Recibo un error confuso de rsync y las primeras cosas que encuentro de las búsquedas web (además de todas las modificaciones habituales) no lo resuelven:

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]

Parece que funciona a pesar de ese error, pero sería bueno deshacerse de eso.


El problema probablemente se deba a que / foo / bar no es propiedad del proceso de escritura en un sistema remoto de darwin (OS X). Una solución al problema es establecer un propietario adecuado en el sitio remoto.

Como esta respuesta ha sido votada, y por lo tanto ha sido útil para alguien, la estoy ampliando para que quede más clara.

La razón por la que esto sucede es que rsync probablemente intenta establecer un tiempo de modificación arbitrario (mtime) al copiar archivos.

Para hacer esto, la función utime () del sistema de darwin requiere que el uid efectivo del proceso de escritura sea el mismo que el uid del archivo o el del superusuario, vea la página de opengroup utime . Verifique esta discusión en la lista de correo de rsync como referencia.


Es posible que no tenga privilegios para algunos de los archivos. Desde una cuenta de administrador, pruebe "sudo rsync -av" De forma alternativa, habilite la cuenta raíz e inicie sesión como raíz. ¡Eso debería permitir que usted manguee completamente su sistema y fuerza bruta su rsync! ;-) No estoy seguro de si los atributos extendidos mencionados anteriormente ayudarán, pero también los arrojé, solo por si acaso.


Este error también podría aparecer si ejecuta el proceso rsync para archivos que no se han modificado recientemente en el origen o el destino ... porque no puede establecer el tiempo para los archivos recientemente modificados.


Esto me sucedió en una partición de tipo xfs (rw,relatime,seclabel,attr2,inode64,noquota) , donde los directorios pertenecían a otro usuario de un grupo del que ambos éramos miembros. La membresía del grupo ya estaba establecida antes del inicio de sesión, y toda la estructura del directorio era de escritura grupal. Había ejecutado manualmente sudo chown -R otheruser.group directory y sudo chmod -R g+rw directory para confirmar esto.

Todavía no tengo idea de por qué no funcionó originalmente, pero tomar posesión de sudo chown -R myuser.group directory solucionó. ¿Quizás relacionado con SELinux?


He visto ese problema cuando escribo en un sistema de archivos que no maneja (correctamente) los tiempos, creo que SMB comparte o FAT o algo así.

¿Cuál es su sistema de archivos objetivo?


Si /foo/bar está en NFS (o posiblemente algún sistema de archivos FUSE), ese podría ser el problema.

De cualquier forma, agregar -O / --omit-dir-times a su línea de comando evitará que intente establecer tiempos de modificación en los directorios.