Как уберечь 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

19
... или просто-a --no-o --no-g
glglgl

1
Я использовал только что, rsync -r --no-o --no-g /source/* /dest/и мой владелец и группа файлов в месте назначения все еще были изменены в соответствии с источником. Есть идеи?
Рам Патра


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.