Rsync неправильно устанавливает разрешения для папки Windows - PullRequest
5 голосов
/ 11 июля 2011

Я использую rsync в Windows 7 (в частности, cwrsync).Я использую простую команду как таковую:

rsync -r --perms --delete /cygdrive/c/Users/Michael/Documents/Personal/ /cygdrive/c/Users/Michael/Documents/Personal_Backup/

Рекурсивная копия работает нормально, за исключением случаев, когда мне нужно было (щелкнуть правой кнопкой мыши / Свойства / вкладка Безопасность) в любой папке, созданной rsync в месте назначения;Я получаю следующее всплывающее сообщение:

Неправильно упорядочены разрешения для {имя_папки}, что может привести к неэффективности некоторых записей.

Я также пробовалОпция --acls, но выдает следующую ошибку:

recv_acl_access: значение выходит за пределы диапазона: ff Ошибка rsync: ошибка в потоке данных протокола rsync (код 12) на acls.c (690) [Receiver =3.0.rsync: соединение неожиданно закрыто (пока получено 9 байт) [отправитель] Ошибка rsync: ошибка в потоке данных протокола rsync (код 12) на io.c (610) [отправитель = 3.0.8]

В любом случае, я просто хочу правильно использовать rsync, чтобы при просмотре разрешений безопасности в Windows не возникла ошибка.

Ответы [ 3 ]

1 голос
/ 12 июля 2011

Michael

Это решение предполагает, что вы не должны использовать --perms, а вместо этого использовать --chmod=ugo=rwX.

Удачи!

Dotan

0 голосов
/ 20 января 2015

Одно слово, Робокопия .

При использовании cwRsync у меня были точно такие же проблемы с потерянными разрешениями, я пробовал множество вещей, но ни одна из них не работала, поэтому я в конце концов сдался.

Это инструмент Windows по умолчанию и имеет аналогичный ( для вашей цели, тот же ) набор функций.

Я обнаружил это прошлой ночью и полностью отказался от rsync. Он построен для Unix-подобных, поэтому в Windows ожидается некоторый облом.

Это заставило меня начать:

http://www.sevenforums.com/tutorials/187346-robocopy-create-backup-script.html

Вот небольшой скрипт резервного копирования Я сделал для себя, чтобы отразить мои разделы на внешний диск.

Не смотрите больше на rsync.

0 голосов
/ 10 декабря 2013

Я использую устаревшие cacls, чтобы добавить себя обратно после того, как произойдет копирование.

rsync -avASPC sourceDir/* destDir
cacls destDir /t /e /r doej
cacls destDir /t /e /g doej:f

Где sourceDir - каталог источника, а destDir - каталог назначения, а doej - имя пользователя.Возможно, было бы лучше использовать icacls, но я еще не изучил это.

Я также пробовал делать робокопию, но у меня не было разрешений, необходимых для этой работы, кажется.

Флаги, используемые для rsync

 -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
    -r, --recursive             recurse into directories
    -l, --links                 copy symlinks as symlinks
    -p, --perms                 preserve permissions
    -t, --times                 preserve modification times
    -g, --group                 preserve group
    -o, --owner                 preserve owner (super-user only)
    -D                          same as --devices --specials
       --devices               preserve device files (super-user only)
       --specials              preserve special files
 -v, --verbose               increase verbosity
 -S, --sparse                handle sparse files efficiently
 -A, --acls                  preserve ACLs (implies -p, which is also implied by -a)
 -P                          same as --partial --progress
    --progress              show progress during transfer
    --partial               keep partially transferred files
 -C, --cvs-exclude           auto-ignore files in the same way CVS does

Флаги, используемые из CACLS

  /T            Changes ACLs of specified files in
  /E            Edit ACL instead of replacing it.
  /R user       Revoke specified user's access rights (only valid with /E).
  /P user:perm  Replace specified user's access rights.
                Perm can be: ...
                           F  Full control
...