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

Как запретить Rsync отключать переданные файлы?

У меня есть настройка соединения 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