Rsync no puede hacer una copia de seguridad de algunos archivos, dando error 22

9

Estoy tratando de hacer una copia de seguridad de todo mi servidor usando un simple rsync en un volumen montado en NFS en '/ nas'

Aquí está mi comando rsync

rsync -sav -S --stats -H --numeric-ids --delete -D 
--exclude-from="/usr/local/bin/rsync_nas1_exclude" / /nas1/

Obteniendo el siguiente error:

rsync: chown "/nas1/home/8003/.local/share/icons/application-x-wine-extension-its.png" 
failed: Invalid argument (22)

o

rsync: chown "/nas1/home/8003/.local/share/applications/wine/Programs/FxPro - Trader"     failed: Invalid argument (22)

¿Alguna idea de por qué? Uso el parámetro '-s' para proteger los nombres de archivo

Disco
fuente

Respuestas:

10

El error está activado chown. Mi conjetura: su montaje NFS objetivo es un volumen FAT32 o NTFS que no es compatible chown. Tiene dos opciones: formatearlo con un sistema de archivos Linux como ext3, o descartar derechos y propietarios por completo ( --no-owner --no-groupopciones rsync).

wazoox
fuente
La partición es ext3; pero necesito mantener el propietario / grupo por eso uso la opción 'numeric-ids'
Disco
¿Su NAS está ejecutando Linux o algún otro sabor de Unix?
wazoox
Linux, por supuesto ...
Disco
1

He tenido el mismo problema durante mucho tiempo sin una solución a la vista. El problema parece ser que NFS no le permitirá cambiar el UID / GID de un archivo a uno que no exista en el servidor:

# for a local file, it works fine:
rena@akira:~ $ sudo chown -v 999:999 testfile 
changed ownership of `testfile' to 999:999

# but if the file is on an NFS share, it fails:
rena@akira:/mnt/yuki $ sudo chown -v 999:999 testfile
chown: changing ownership of `testfile': Invalid argument
failed to change ownership of `testfile' to 999:999

Parece que esto es un defecto de diseño en NFS; no puede usarlo para hacer una copia de seguridad de archivos propiedad de alguien que no existe en el servidor. ¿Pero tal vez hay una manera de deshabilitar esta verificación?

Rena
fuente
Funciona para mí, en mi servidor NFS. ¿Quizás es una limitación de la distribución / sistema operativo que se ejecuta en el servidor NFS?
wazoox
0

En mi caso, el problema resultó ser la versión NFS. Con NFSv4, no se permitía uid / gid que no existía en el lado del servidor, mientras que a NFSv3 (siempre que se exportara con no_root_squash) no le importaba. Entonces, después de agregar vers=3a las opciones de montaje en /etc/fstabrsync, pude hacer una buena combinación.

Wim
fuente