Rsync ne parvient pas à sauvegarder certains fichiers, donnant l'erreur 22

9

J'essaie de sauvegarder tout mon serveur en utilisant une simple rsync sur un volume monté NFS sur '/ nas'

Voici ma commande rsync

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

Obtention de l'erreur suivante:

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

ou

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

Une idée pourquoi? J'utilise le paramètre '-s' pour protéger les noms de fichiers

Disco
la source

Réponses:

10

L'erreur est activée chown. Ma conjecture: votre montage NFS cible est un volume FAT32 ou NTFS qui ne prend pas en charge chown. Vous avez deux options: formatez-le avec un système de fichiers Linux comme ext3, ou supprimez entièrement les droits et les propriétaires ( --no-owner --no-groupoptions rsync).

wazoox
la source
La partition est ext3; mais j'ai besoin de garder le propriétaire / groupe c'est pourquoi j'utilise l'option 'numeric-ids'
Disco
Votre NAS fonctionne-t-il sous Linux ou une autre saveur Unix?
wazoox
Linux bien sûr ...
Disco
1

J'ai le même problème depuis longtemps sans aucune solution en vue. Le problème semble être que NFS ne vous laissera pas changer l'UID / GID d'un fichier par ceux qui n'existent pas sur le serveur:

# 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

Il semble que ce soit un petit défaut de conception dans NFS; vous ne pouvez pas l'utiliser pour sauvegarder des fichiers appartenant à quelqu'un qui n'existe pas sur le serveur. Mais peut-être existe-t-il un moyen de désactiver cette vérification?

Rena
la source
Cela fonctionne pour moi, sur mon serveur NFS. C'est peut-être une limitation de la distribution / OS exécutée sur le serveur NFS?
wazoox
0

Dans mon cas, le problème s'est avéré être la version NFS. Avec NFSv4, les uid / gid qui n'existaient pas côté serveur n'étaient pas autorisés, alors que NFSv3 (tant qu'il était exporté avec no_root_squash) ne le dérangeait pas. Donc, après avoir ajouté vers=3aux options de montage dans /etc/fstabrsync, j'ai pu très bien me montrer.

Wim
la source