Когда я использую опцию -a, как спрашивают и отвечают в « Сохранять разрешения с помощью rsync» , я получаю много ошибок «rsync: не удалось установить разрешения для».
rsync: failed to set permissions on "/ata/text/RCS/jvlc,v": Operation not permitted (1)
rsync: failed to set permissions on "/ata/text/RCS/jvm,v": Operation not permitted (1)
rsync: failed to set permissions on ...
Почему это? Файлы являются обычными файлами с разрешением 0664.
permissions
rsync
prosseek
источник
источник
Ответы:
Скорее всего, rsync на конечной стороне не работает как пользователь с правами доступа к
chmod
этим файлам (который должен быть либо владельцем файла, либо пользователем root).источник
Эта ошибка происходит, потому что операция по изменению разрешений не разрешена. Поэтому либо проверьте, имеют ли пользователь, выполняющий команды, правильные разрешения (например, он не владелец), либо ваша файловая система не поддерживает его.
Вы можете игнорировать предупреждения, указав дополнительные аргументы для rsync для
--no-perms
and-O
(--omit-dir-times
), чтобы избежать попыток установить разрешения и время изменения для файлов / каталогов. Это должно решить ошибки. В качестве альтернативы избегайте использования-a
.источник
Как уже было сказано, проблема возникает всякий раз, когда у вас нет разрешения на изменение прав доступа к файлу в месте назначения
rsync
. Однако вы можете избежать этого сообщения об ошибке, используя два дополнительных аргумента--no-o
и--no-g
.Пример:
источник
--no-owner
и--no-group
не контролируйте разрешения. Вы бы хотели--no-perms
за это. Если вы хотите избежать попыток сменить владельца, вам, вероятно, понадобятся все три флага.Задний план
Как правило,
rsync
вы увидите предупреждения, если либо:rsync
сервер на другом конце не имеет разрешения на выполнение действия , связанное со следующим:Эти проблемы проявятся через
владелец группа разрешенийrsync
клиента, который пытается связаться сrsync
сервером, который отображается в виде сообщений, подобных этому, при попытке скопировать файлы / каталоги получателю:В тех случаях, когда принимающая сторона не может выполнить эти операции, вы можете
rsync
просто пропустить попытку выполнить их, понимая, что назначение не будет строго идентично метаданным отправителя вокруг файлов. Это все равно создаст идентичные копии двоичных частей файлов и каталогов.Чтобы
rsync man pagersync
не беспокоиться о метаданных, вы можете использовать--no-OPTION
для отключения любой из этих подразумеваемых опций.Так что в нашем случае мы хотим использовать что-то вроде этого, чтобы отключить вещи:
пример
альтернатива
Другая причина, по которой это происходит, заключается в использовании
-a
переключателя.-a
включает в себя семейство коммутаторов:Вместо использования
Это отдельные варианты, включенные в-a
вы можете использовать отдельные переключатели и отказаться от использования--no-OPTION
.-a
Делая вещи таким образом, вышеприведенный пример стал бы следующим:
источник