У меня есть настройка соединения sshfs с удаленной файловой системой на сервере Linux. Я выполняю Rsync с моего локального сервера в файловую систему ftpfs. Из-за характера этой настройки я не могу chown
что-нибудь в файловой системе sshfs.
Когда я выполняю Rsync, он пытается перехватить все файлы после их передачи. Это приводит к ошибкам chown, даже если файлы передаются нормально.
Есть ли способ с помощью Rsync запретить ему копать файлы? Если я rsync, как 1000 файлов, я получаю журнал 1000 chown: permission denied (error 13)
ошибки. Я знаю, что получение этих ошибок не повредит, так как право собственности на файлы определяется самой конфигурацией sshfs. Но хорошо бы их не получить.
Вероятно, вы запускаете rsync следующим образом:
rsync -a dir/ remote:/dir/
В -a
вариант согласно документации эквивалентно: -rlptgoD
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
Вы, вероятно, захотите удалить -o
и -g
параметры:
-o, --owner preserve owner (super-user only)
-g, --group preserve group
Поэтому вместо этого ваша команда rsync должна выглядеть примерно так:
rsync -rlptD dir/ remote:/dir/
Или как @glglgl указывает на то:
rsync -a --no-o --no-g dir/ remote:/dir/
Остальные используемые параметры:
-r, --recursive recurse into directories
-l, --links copy symlinks as symlinks
-p, --perms preserve permissions
-t, --times preserve modification times
-D same as --devices --specials
--devices preserve device files (super-user only)
--specials preserve special files
Не проходи -o
или любой другой вариант, который подразумевает это.
Не используйте -a
вариант, так как он будет включать -p
вариант, который сохраняет разрешения. В этой ситуации -r
должно хватить.
Для получения дополнительной информации см. man rsync
.
Я столкнулся с чем-то похожим, rsync
не сохранял владельца, а группа файлов и каталогов была синхронизирована с удаленного сервера. Чтобы исправить, я скопировал /etc/shadow
, /etc/group
и /etc/passwd
файлы.
Когда я запустил rsync
команда, расположенная ниже, затем работала, сохраняя разрешения, символические ссылки и право собственности.
Я настроил ключи ssh для использования ssh без пароля.
rsync -avpog user@10.1.x.x:/usr/local /usr