Назад | Перейти на главную страницу

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

Я пытаюсь сделать резервную копию всего моего сервера, используя простой 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' для защиты имен файлов

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

У меня была такая же проблема в течение долгого времени, и решения не было видно. Проблема, похоже, в том, что 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. С NFSv4, uid / gid, которые не существовали на стороне сервера, были запрещены, тогда как NFSv3 (если он был экспортирован с no_root_squash) не возражал. Итак, после того, как я добавил vers=3 к параметрам крепления в /etc/fstab rsync отлично справился с задачей.