Articles

Robocopy /MIR switch-miroring file permissions

first published on TECHNET on Jul 31, 2008
Some customers pointed out what they believe to be a bug in Robocopy.
a situação é: suponha que copie seus arquivos usando Robocopy no Windows Server 2003 ou XP. Então, as permissões de arquivos ou pastas (ACLs) são alteradas no código ou destino. Você deseja usar a opção /MIR para espelhar as permissões:
> ROBOCOPY source destination /MIR /SEC
Robocopy não consegue espelhar as permissões de arquivos – mas trabalha para as permissões de pastas.
Este comportamento é por design. O Robocopy foca-se em copiar apenas os arquivos que mudaram (em tamanho ou data modificada, por padrão). Se um arquivo parece que ele mudou, Robocopy copia seus dados e, se você especificou a segurança de cópia também, copia NTFS ACL da fonte para o alvo após copiar os dados. Se um arquivo parece que não mudou, o Robocopy por padrão o salta, e não copia nada para o arquivo, nem mesmo sua informação de segurança. When I wrote the “security copy” part of Robocopy on 22 May 1997, I chose to do this for performance reasons, to keep Robocopy times for large trees down. Foi uma implementação adequada para a maioria das necessidades da época. Além disso, outra razão pela qual eu escolhi fazer as coisas da maneira que eu fiz, é que a definição de segurança em diretórios é suficiente para a maioria das pessoas. Definir segurança em uma base arquivo-a-arquivo é uma abordagem mais granular, com certeza, mas incorre em uma sobrecarga de manutenção maior, talvez demasiado para muitos usuários.
Portanto, a solução listada como uma solução postado por Martin Zugec (MVP), é precisamente o que precisa ser feito nessa situação, e este comportamento é o esperado:
> ROBOCOPY /Mir <Fonte><Destino>
> ROBOCOPY /E /Cópia:S /IS /IT <Fonte><Destino>
O primeiro comando Robocopy acima de cópia de dados e de segurança para os arquivos que foram atualizados, e o segundo comando Robocopy vai arquivo de atualização de segurança para todos os arquivos, sem copiar qualquer arquivo de dados.
If using a Resource Kit version of Robocopy, and wanting to keep security synced between two trees where the data is fairly static, but security is updated now and then. Na verdade, a seção” copiar informações de segurança NTFS ” do Robocopy.doc (from the Resource Kits) states:
“To refresh security information for existing destination files and directories without copying file data, use the /IS switch together with the /COPY switch without the D flag. Por exemplo /IS / COPY:a SOU iria atualizar todas as informações de segurança para todos os arquivos selecionados, sem copiar quaisquer dados de arquivos.”
as Coisas mudaram um pouco nos últimos 11 anos, a segurança, o sábio, então eu mudei a maneira como as coisas funcionam nesta área um pouco para a versão do Robocopy que acabou em Vista, no que se você especificar /SECFIX na linha de comando Robocopy irá cópia de segurança de arquivos ignorados que existem em ambas a origem e o destino de árvores. assim, para manter duas árvores em sincronia, incluindo a sua segurança, usando o Robocopy do Vista, você pode usar o seguinte como seu comando Robocopy regular:
> ROBOCOPY <fonte><destino> /MIR /S /SECFIX
/MIR vai replicar dados e a segurança (como /S é especificada) para arquivos alterados, e /SECFIX irá atualizar apenas a segurança de arquivos inalterados. Adicione /V à linha de comandos se quiser ver quais os ficheiros que estão a ter a sua segurança “fixa” sem ter os seus dados copiados. Kevin Allen