Как уберечь Rsync от передачи переданных файлов?

72

У меня есть настройка соединения sshfs с удаленной файловой системой на сервере Linux. Я делаю Rsync с моего локального сервера в файловую систему ftpfs. Из-за природы этой настройки я ничего не могу сделать chownв файловой системе sshfs.

Когда я делаю Rsync, он пытается разбить все файлы после передачи. Это приводит к ошибкам chown, хотя и передает файлы просто отлично.

С Rsync, есть ли способ сказать ему, чтобы не пытаться и разбивать файлы? Если я rsync, как 1000 файлов, я получаю журнал 1000 chown: permission denied (error 13)ошибок. Я знаю, что ничего не мешает получить эти ошибки, так как право собственности на файлы определяется самой конфигурацией sshfs. Но было бы неплохо не получить их.

Джейк Уилсон
источник

Ответы:

107

Вы, вероятно, запускаете 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
aculich
источник
19
... или просто-a --no-o --no-g
glglgl
1
Я использовал только что, rsync -r --no-o --no-g /source/* /dest/и мой владелец и группа файлов в месте назначения все еще были изменены в соответствии с источником. Есть идеи?
Рам Патра
12

Не пропустите -oили любой другой вариант, который подразумевает это.

Игнасио Васкес-Абрамс
источник
5

Не используйте эту -aопцию, так как она будет включать -pопцию, которая сохраняет права доступа. Для этой ситуации -rдолжно хватить.

Для получения дополнительной информации см man rsync.

Свен
источник
4
Ты уверен, что -pэто то, чего я хочу избежать? Право собственности отличается от прав, верно?
Джейк Уилсон
0

Я столкнулся с чем-то подобным, когда rsyncне сохранил владельца, а группа файлов и каталогов была синхронизирована с удаленного сервера. Чтобы исправить, я скопировал над /etc/shadow, /etc/groupи /etc/passwdфайлами.

Когда я запускал rsyncкоманду ниже, она работала так, что сохраняла права доступа, символические ссылки и право собственности.

Я настроил ssh-ключи для использования ssh без пароля.

rsync -avpog user@10.1.x.x:/usr/local /usr
pbroderi31
источник