Як уберегти Rsync від переданих файлів chown'ing?


72

У мене встановлення з'єднання sshfs з віддаленою файловою системою на сервері Linux. Я роблю Rsync з мого локального сервера до ftpfs-файлової системи. Через характер цієї установки я не можу chownнічого у файловій системі sshfs.

Коли я роблю Rsync, він намагається заглушити всі файли після їх передачі. Це призводить до помилок, навіть якщо він передає файли просто чудово.

Чи можна за допомогою 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/і мій власник та група файлів у пункті призначення все ще були змінені відповідно до джерела. Будь-які ідеї?
Ram Patra


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.