Rsync не может сделать резервную копию некоторых файлов, выдав ошибку 22

9

Я пытаюсь сделать резервную копию всего своего сервера, используя простой rsync на смонтированном томе NFS в / nas

Вот моя команда rsync

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

Получаем следующую ошибку:

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

или

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

Есть идеи почему? Я использую параметр '-s' для защиты имен файлов

Дискотека
источник

Ответы:

10

Ошибка включена chown. Мое предположение: целевое монтирование NFS - это том FAT32 или NTFS, который не поддерживает chown. У вас есть два варианта: отформатировать его в файловой системе Linux, например ext3, или полностью удалить права и владельцев ( --no-owner --no-groupпараметры rsync).

wazoox
источник
Раздел ext3; но мне нужно сохранить владельца / группу, поэтому я использую опцию 'numeric-ids'
Disco
Ваш NAS работает под управлением Linux или какой-то другой версии Unix?
wazoox
Линукс конечно ...
Дискотека
1

У меня была та же самая проблема в течение долгого времени без видимого решения. Кажется, проблема в том, что NFS не позволит вам изменить UID / GID файла на тот, который не существует на сервере:

# 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

Похоже, это немного недостаток дизайна в NFS; Вы не можете использовать его для резервного копирования файлов, принадлежащих кому-то, кто не существует на сервере. Но, может быть, есть способ отключить эту проверку?

Рена
источник
Это работает для меня, на моем сервере NFS. Может быть, это ограничение дистрибутива / ОС, работающей на сервере NFS?
wazoox
0

В моем случае проблема оказалась в версии NFS. С NFSv4, uid / gid, который не существовал на стороне сервера, не были разрешены, тогда как NFSv3 (пока он был экспортирован no_root_squash) не возражал. Так что после того, как я добавил vers=3параметры монтирования в /etc/fstabrsync, я смог просто набить.

Wim
источник