As opções de trabalho e monitoramento do RoboCopy

21

O que as opções de trabalho do RoboCopy fazem? E o que exatamente os switches /MONe /MOTfazem? Como posso usá-los? Não os compreendo e não consigo encontrar exemplos de como usá-los.

  • / MON: n - fonte MONitor; execute novamente quando mais de n alterações forem vistas.
  • / MOT: m - fonte do monitor; execute novamente em m minutos Tempo, se alterado.

Isso significa que ele será executado uma vez primeiro e, depois, continuará sendo executado depois que terminar e executar novamente se ocorrer uma alteração em algum lugar na estrutura do arquivo ou quando algo tiver mudado e o tempo tiver passado?

  • / JOB: jobname - obtém parâmetros do arquivo JOB nomeado.
  • / SAVE: jobname - salva parâmetros no arquivo de trabalho nomeado
  • / QUIT - QUIT após o processamento da linha de comando (para visualizar os parâmetros).
  • / NOSD - NO Diretório de origem está especificado.
  • / NODD - NO Diretório de destino está especificado.
  • / SE - Inclua os seguintes arquivos.

O que é um arquivo de trabalho? Para que servem os switches /NOSDe /NODD?

Svish
fonte
Robocopy grandes perguntas e até que eu vi suas tags Eu não tinha percebido faz parte do Windows 7. :-)
Chris_K
Obrigado! Acho que também faz parte do Vista, mas estou usando o Windows 7, então dei um tapa nele. Eu não conhecia essa ferramenta há alguns dias: D
Svish
1
O robocopy foi incluído como padrão desde o Windows Vista e Windows Server 2008. Antes disso, estava disponível publicamente desde a v1.7 como uma ferramenta nos Windows Resource Kits desde 3.51 (e antes disso, era conhecido pelos funcionários da MS como "aquele utilitário de cópia impressionante que Kevin escreveu ... ")
Jessica McKinnon

Respostas:

6

Isso significa que ele será executado uma vez primeiro e, depois, continuará sendo executado depois que terminar e executar novamente se ocorrer uma alteração em algum lugar na estrutura do arquivo ou quando algo tiver mudado e o tempo tiver passado?

Sim. / MON conta o número de arquivos alterados; / MOT conta o tempo.

Eu sempre tive medo de tentar essas opções, pois os documentos dizem como iniciar esses trabalhos, mas não como interrompê-los. Eles podem se tornar tarefas agendadas invisíveis e imparáveis, pelo que sei.

Esta página indica que ela será executada até você interromper o trabalho em execução, por exemplo, com o controle-C.

(Adicionado como resposta em vez de como comentário, porque o StackExchange não me permite escrever comentários sem 50 reputação, e eu tenho 1 reputação após três anos.)

Phil Goetz
fonte
6

Melhor explicado pelo exemplo:

Aqui está um arquivo de trabalho trivial, chame-o sample.rcj:

:: Source Directory :
    /SD:C:\Documents and Settings\  :: Source Directory.

:: Destination Directory :
::  On command line

:: Copy options :
    /E      :: copy Subdirectories, including empty ones.

Ele especifica opções para copiar o c:\Documents and Settingsdiretório da máquina atual para um local não especificado.

Veja como você o usaria para copiar para o destino especificado na %DEST%variável de ambiente, adicionando log ao %LOG%arquivo.

robocopy /nosd %DEST% /log+:%LOG% /job:sample

/NOSD é fornecido porque a fonte está especificada no arquivo de trabalho.

Você pode brincar com a criação de um comando robocopy na linha de comando e, quando estiver satisfeito com o que deseja, execute-o novamente /SAVEpara salvar as opções em um arquivo.

/QUIT analisa as opções e reclamará se você tiver algo errado (opções inválidas, a origem não existe), mas na verdade não fizer nada.

Eu acho que /IFisso permitiria incluir um arquivo de opções além do trabalho em si? (No meu exemplo, eu poderia colocar a /LOGopção em um arquivo e incluí-la no /IF.) Apenas adivinhando lá.

Randy Orrison
fonte
Não sei sobre as opções / MON e MOT, mas suspeito que o shufler as acertou. Experimente e deixe-nos saber!
Randy Orrison 02/09/09
ps. mais informações sobre este assunto aqui: detroitdavesraves.blogspot.co.uk/2011/08/…
JohnLBevan
5

/MONdigitaliza a fonte e copia quando detecta alterações. /MOTé executado novamente em n minutos e copia as alterações detectadas

/JOB permite especificar as opções em um arquivo de texto, caso você tenha muitas opções (como exclusões).

Gostaria de saber o que fiz /NOSDe /NODDcomo nunca tive um motivo para usá-los.

shufler
fonte
Você poderia criar um exemplo de uso dessa opção / JOB? Eu não posso fazê-lo funcionar ...
Svish
o arquivo / job contém uma lista de opções (uma por linha) e seus parâmetros. você também pode usar o / save interruptor para a saída de um arquivo de trabalho (.rcj) para uso posterior
shufler
/ MOT é executado a cada n minutos apenas se houver alterações (consulte o manual: "Monitora a fonte e é executado novamente em M minutos se forem detectadas alterações")
ndemou 28/01/18
3

De: http://www-pc.uni-regensburg.de/systemsw/tools/robocopy.doc

Monitorando uma árvore de diretórios Usando as opções / MON: ne MOT / m, é possível monitorar a árvore de diretórios de origem quanto a alterações e copiar as alterações conforme e quando elas ocorrerem. A opção / MON: n especifica o número mínimo de alterações que devem ocorrer antes da execução novamente. A opção / MOT: m especifica o tempo mínimo, em minutos, que deve decorrer antes de executar novamente. Se você especificar apenas uma dessas opções, presume-se que a outra tenha o valor 1.

Quando o Monitoramento é especificado, o Robocopy nunca termina. Em vez disso, ele entra em um loop que executa uma passagem normal do Robocopy e monitora a árvore de diretórios de origem em busca de alterações, até que n alterações sejam detectadas e m minutos tenham decorrido. Quando as duas condições são atendidas, outro passe de Robocopy é iniciado. Todo esse processo de cópia e monitoramento é repetido, ad infinitum, até que o usuário finalize manualmente o processo de Robocopy.

No mínimo, o Robocopy monitora a árvore de diretórios de origem em busca de alterações nos nomes de arquivos e diretórios, tamanhos e últimos tempos de gravação. Se os atributos devem ser copiados, o Robocopy também monitorará a árvore quanto a alterações de atributos. Da mesma forma, se as informações de segurança forem copiadas, o Robocopy também monitorará a árvore em busca de alterações de segurança.

Conseqüentemente, um usuário executando uma edição e salvando um único arquivo novo, por exemplo, pode fazer com que várias alterações de vários tipos sejam relatadas de volta ao Robocopy. Portanto, algumas experiências podem ser necessárias para determinar os valores limite apropriados para / MON e / MOT para cada trabalho de Robocopy, especialmente aqueles que monitoram árvores ocupadas.

Buckley
fonte
Hmm, então ele pode ser usado para detectar renomeações e movimentos. Mas quando ele detecta essa alteração na árvore, ele copia o arquivo para o novo nome / local e o exclui do antigo (executando gravações desnecessárias) ou pode renomeá-lo / movê-lo?
Synetech 4/13
O Chrome sinaliza esse arquivo doc como malware!
Aardvark
1

Como exemplo, eu uso a /MOTopção para manter um sistema de arquivos DR atualizado com uma cópia a cada 10 minutos. Começo a robocopy às 12h com uma tarefa agendada e ela é executada o dia todo copiando as alterações a cada 10 minutos. A tarefa agendada é configurada para parar automaticamente após 23h55m e, em seguida, o robocopy é iniciado pela tarefa do dia seguinte às 12h novamente.

Embora o robocopy indique o número de alterações enquanto espera o período de 10 minutos expirar, ele ainda verifica toda a estrutura da pasta de origem para a qual você apontou. Portanto, é melhor restringir a estrutura de origem com algumas exceções de pasta ( /XD <folder>), se possível.

Mike
fonte
Gostaria de compartilhar seu script?
Svish
0

Outra maneira simples de fazer isso é simplesmente usar a opção / MIR e agendar seu arquivo bat para executá-lo repetidamente. Ele fará a alteração apenas com base no lado da fonte. Você precisa executar uma cópia completa primeiro.

Verifique o arquivo de log em que você verá os resultados. use também a opção / MT para Multi-threading. Faça a cópia mais rapidamente.

Loop de raiz
fonte
0

Como usar arquivos de trabalho

Os arquivos de tarefas são usados ​​para salvar e reutilizar (geralmente) longas linhas de comando da robocopy.

Para criar um arquivo de trabalho de robocópia

ROBOCOPY C:\SRC C:\DST ...other.robocopy.options... /SAVE:TEST /QUIT

Isso criará um arquivo de trabalho de Robocopy chamado TEST.RCJ com todas as opções de Robocopy que você especificou antes da opção / SAVE e, em seguida, encerra sem realmente executar a cópia.

Para usar um ou mais arquivos de trabalho

ROBOCOPY /JOB:TEST /JOB:JOBFILE2 ...other.options...

Para visualizar ou editar o arquivo de trabalho

Basta abri-lo com um editor de texto. O formato é auto-explicativo.

Para testar arquivos de trabalho

Se você quiser testar suas edições ou se estiver combinando vários arquivos de trabalho e se perguntar qual é o resultado final, execute o seguinte:

ROBOCOPY /JOB:JOBFILE1 /JOB:JOBFILE2 /QUIT

Para criar arquivos de trabalho sem o diretório de origem / destino

Nesse caso, use a seguinte sintaxe:

ROBOCOPY /NOSD /NODD ...options... /SAVE:TEST /QUIT

Aparentemente, / NOSD e / NODD representam NO Dir Dir e NO Dest Dir.

Você também deve usar essas opções ao executar arquivos de tarefas que definem a origem ou o destino, porque a robocopy se queixará se você a inserir novamente na linha de comando.

Sobre / MON e / MOT

Sua compreensão do manual está correta. O Robocopy continua executando, detectando e atuando em quaisquer alterações até você finalizá-lo (por exemplo, com Ctrl-C).

ndemou
fonte
-1

Verifique a documentação no Technet .

John Gardeniers
fonte
1
A documentação não diz nada além do que eu coloquei na minha resposta lá. Pelo menos tanto quanto eu posso ver ...
Svish
Entendo o que você quer dizer, desculpe. A documentação era muito melhor antes de se tornar um produto "oficial".
John Gardeniers 02/09/09