Cuando uso la opción -a como se pregunta y responde en Conservar los permisos con rsync , recibí muchos errores "rsync: no se pudieron establecer permisos en".
rsync: failed to set permissions on "/ata/text/RCS/jvlc,v": Operation not permitted (1)
rsync: failed to set permissions on "/ata/text/RCS/jvm,v": Operation not permitted (1)
rsync: failed to set permissions on ...
¿Por qué es esto? Los archivos son archivos normales con permiso de 0664.
permissions
rsync
prosseek
fuente
fuente
Respuestas:
Lo más probable es que rsync en el extremo de destino no se ejecute como un usuario con permiso para
chmod
esos archivos (que deberían ser el propietario o la raíz del archivo).fuente
Este error ocurre porque la operación para cambiar los permisos no está permitida. Por lo tanto, compruebe si su usuario que ejecuta los comandos tiene los permisos correctos (por ejemplo, él no es el propietario) o si su sistema de archivos no lo admite.
Puede ignorar las advertencias especificando los argumentos adicionales para rsync
--no-perms
y-O
(--omit-dir-times
) para evitar intentar establecer permisos y tiempos de modificación en archivos / directorios. Esto debería resolver los errores. Alternativamente, evite usar-a
.fuente
Como ya se dijo, el problema ocurre cada vez que no tiene permiso para cambiar los permisos de archivo en el destino de
rsync
. Sin embargo, puede evitar este mensaje de error utilizando los dos argumentos adicionales--no-o
y--no-g
.Ejemplo:
fuente
--no-owner
y--no-group
no controle los permisos. Te gustaría--no-perms
por eso. Si desea evitar tratar de cambiar la propiedad, probablemente necesite las tres banderas.Fondo
Por lo general
rsync
, verá advertencias si:rsync
servidor en el otro extremo no posee permisos para ejecutar una acción asociada con lo siguiente:Estos problemas se manifestarán a través del
propietario grupo permisosrsync
cliente que intenta comunicarse con elrsync
servidor que aparece como mensajes como este cuando intenta copiar archivos / directorios a un receptor:En los casos en que el lado receptor no puede realizar estas operaciones, puede indicar
rsync
que simplemente omita el intento de realizarlas, dándose cuenta de que el destino no será estrictamente idéntico a los metadatos del remitente alrededor de los archivos. Esto seguirá creando copias idénticas de las partes binarias de los archivos y directorios.Para decirle que
página de manual de rsyncrsync
no se preocupe por los metadatos, puede usar--no-OPTION
para desactivar cualquiera de estas opciones implícitas.Entonces, en nuestro caso, queremos usar algo como esto para deshabilitar las cosas:
Ejemplo
Alternativa
Otra razón por la que esto sucede es por el uso del
-a
interruptor.-a
incluye una familia de interruptores:En lugar de usar
Estas son las opciones individuales incluidas con-a
, podría usar los interruptores individuales y renunciar a tener que usar los--no-OPTION
's.-a
Al hacer las cosas de esta manera, el ejemplo anterior se convertiría en esto:
fuente