Copie continuamente todas as alterações de arquivo de uma pasta para outra durante a alteração (Windows)

Copie continuamente todas as alterações de arquivo de uma pasta para outra durante a alteração (Windows)

Estou trabalhando em um enorme aplicativo da web Java que é mantido sob controle de versão centralizado, mas os arquivos de origem são usados ​​para construir e executar o servidor real, que copia todos os arquivos em que trabalho em um diretório temporário aleatório enquanto está em execução.

Meu problema é que preciso reconstruir esse enorme aplicativo para ver quaisquer alterações em meus arquivos ou acompanhar todas as minhas alterações e copiar os arquivos que alterei de volta para o local de origem antes de enviá-los de volta ao controle de origem.

Minha pergunta é: existe um script de linha de comando que eu possa executar que monitore quaisquer alterações na pasta de origem e copie automaticamente os arquivos alterados para a pasta temporária X?

A ideia é remover o ponto de falha humano ao ter que mitigar manualmente o problema dos dois locais.

Responder1

Eu sugiroFreeFileSync, que parece ter a capacidade de criar um script que sincronizará automaticamente as duas pastas a cada poucos segundos. Não brinquei com isso pessoalmente, mas parece promissor.

insira a descrição da imagem aqui insira a descrição da imagem aqui

Responder2

Você já pensou em usar o RoboCopy?http://ss64.com/nt/robocopy.html

O RoboCopy pode ser configurado para copiar os dados após um determinado período de tempo ter decorrido e/ou ocorrer uma série de alterações nos conjuntos de dados.

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

Responder3

Você também pode querer dar uma olhada no (envelhecimento)DeltaCopycliente e servidor. Basicamente, é um sistema semelhante ao Linuxsincronizar novamenteimplementação para Windows, programável (usando o agendador do Windows, se desejado) e sua principal vantagem é queapenas as peças alteradasde um arquivo modificado (sim, arquivo!) são transmitidos. Isso pode economizar muito tráfego em grandes projetos. Uma desvantagem é, obviamente, que ele precisa construir e transmitir uma lista de arquivos antes.

Além disso, existem algumas (pequenas) advertências:

  • Como é um software mais antigo, talvez seja necessário substituí-locygwin1.dllem máquinas Windows. (Se você sincronizar arquivos entre Linux e Windows, apenas. Ele usaCygwincomo a estrutura subjacente que não lidava corretamente com a conversão de nome de arquivo Unicode/UTF-8 de 16 bits naquele momento.)
  • Não é exatamente tão fácil de usar, você deveria dar uma olhada no Linux'página de manual do rsyncpara explorar todo o seu potencial.
  • No Windows, requer uma máquina »cliente« e uma máquina »servidor«.
  • Se o servidor for uma máquina Linux, você terá que configurarsincronizar novamentecorretamente.
  • Não há suporte para Volume Shadow Copy do Windows (embora possa não ser necessário).

Bom, também tem vantagens (por isso ainda uso diariamente):

  • Totalmente compatível com *NIX rsync e rsyncd. Um sistema de sincronização comprovado, conhecido e altamente eficiente. Ainda.
  • Mantém a sobrecarga pequena: somente os dados alterados (mesmo dentro de arquivos!) São transportados pela rede. Portanto, também é muito bom se você estiver teletrabalhando ou se conectando ao servidor por meio de conexões lentas.
  • À prova de falhas, aparentemente. Eu sincronizei novamente muitos gigabytes de dados ao longo dos anos e nenhuma falha aconteceu ao »consertar« os arquivos de destino. Mesmo que eu tenha achado o conceito um pouco preocupante, no início.
  • Eu ainda uso o DeltyCopy para fazer backup de arquivos de máquinas Windows para um servidor Linux central e um servidor Windows 2003 diariamente. Funciona extremamente bem e seguro, se instalado corretamente.

Bem, depende de você. Divirta-se! (E conte-nos sobre o FreeFileSync!)

Responder4

Um comando útil é xcopy /m src\* dest. isso copiará todos os arquivos de src para dest elimpao bit de arquivo em todos os arquivos src. Sempre que você tocar em um arquivo src, o Windows definirá automaticamente o bit de arquivo. Na próxima vez que você executar, xcopy /mele copiará apenas os arquivos alterados.

Se você quiser executá-lo continuamente, escreva um pequeno script como

@echo off
echo Watching for changes to %1 ...
:top
xcopy /m /y %1\* %2 | find /v "File(s) copied"
timeout /t 2 >nul
goto :top

informação relacionada