Uso esta invocación rsync para hacer una copia de seguridad de mi directorio de inicio:
rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"
La página de manual de rsync dice que -a implica -g y -o (entre otros modificadores), lo que debería preservar la propiedad. Sin embargo, he notado que si un directorio no existe debajo $BACKUP_MNTPOINT/$USER_HOME
, se crea con la propiedad root: root en lugar de la correcta. (Esto solo sucede con los directorios justo debajo $BACKUP_MNTPOINT/$USER_HOME
). ¿Porqué es eso?
$BACKUP_MNTPOINT
es una unidad montada localmente. $BACKUP_MNTPOINT/$USER_HOME
tiene la propiedad y los permisos correctos. Ni $USER_HOME
tampoco $BACKUP_MNTPOINT
termina con una barra.
Tanto el sistema de archivos de origen como el de destino son XFS y su ejecución mkdir $BACKUP_MNTPOINT/$USER_HOME
crea un directorio con la propiedad esperada.
fuente
$BACKUP_MNTPOINT
y con qué opciones está montado? ¿Esto sucede solo para el$BACKUP_MNTPOINT/$USER_HOME
directorio padre ( ) o para todos los directorios creados? Hacer$BACKUP_MNTPOINT
y$USER_HOME
terminar con un/
?/home
y la unidad de copia de seguridad. Hasta ahora, creo que solo sucedió para los directorios principales. Ni$BACKUP_MNTPOINT
tampoco$USER_HOME
termina con una barra. EDITAR: ahora puedo confirmar que solo sucede en los directorios justo debajo$BACKUP_MNTPOINT/$USER_HOME
$BACKUP_MNTPOINT/$USER_HOME
tiene los permisos correctos pero los subdirectorios no? Por favor, editar su pregunta y agregar estos detalles. Además, aclare simkdir $BACKUP_MNTPOINT/$USER_HOME/foo
crea un directorio propiedad de su usuario si lo hace manualmente.mkdir $BACKUP_MNTPOINT/$USER_HOME/foo
crea un directorio con la propiedad del usuario.strace
(como se especifica en una pseudo respuesta).Respuestas:
Tuve un problema similar al usar
rsync
para hacer una copia de seguridad de mi sistema en mi servidor. Solía:La solución es que no hay realmente un problema. Sospecho que abortó el
rsync
proceso una vez que vio que crea carpetas con permisos incorrectos establecidos. El quid es quersync
solo establece los permisos de una carpeta principal una vez que se realiza la sincronización de todas las subcarpetas y archivos de la misma.fuente
Tal vez ejecute rsync a través de strace / truss y vea si recibe un error de regreso de la llamada al sistema chown (), y también para confirmar que chown () tiene la ruta correcta y UID / GID.
fuente