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