Copie continuamente todos los cambios de archivos de una carpeta a otra al realizar cambios (Windows)

Copie continuamente todos los cambios de archivos de una carpeta a otra al realizar cambios (Windows)

Estoy trabajando en una aplicación web Java masiva que se mantiene bajo control de versiones centralizado, pero los archivos fuente se usan para construir y ejecutar el servidor real, que luego copia todos los archivos en los que trabajo en un directorio temporal aleatorio mientras se ejecuta.

Mi problema es que necesito reconstruir esta enorme aplicación para ver los cambios en mis archivos, o realizar un seguimiento de todos mis cambios y copiar los archivos que he cambiado a su ubicación de origen antes de enviarlos nuevamente al control de origen.

Mi pregunta es: ¿hay algún script de línea de comando que pueda ejecutar que supervise cualquier cambio en la carpeta de origen y copie automáticamente los archivos modificados en la carpeta temporal X?

La idea es eliminar el punto humano de falla al tener que mitigar manualmente el problema de las dos ubicaciones.

Respuesta1

yo sugieroSincronización de archivos gratuitos, que parece tener la capacidad de crear un script que sincronizará automáticamente las dos carpetas cada pocos segundos. No he jugado con él personalmente, pero parece prometedor.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Respuesta2

¿Has considerado usar RoboCopy?http://ss64.com/nt/robocopy.html

RoboCopy se puede configurar para copiar los datos después de que haya transcurrido un período de tiempo determinado y/o se hayan producido una serie de cambios en los conjuntos de datos.

/MON:n: fuente MONitor; ejecutar nuevamente cuando se vean más de n cambios.
/MOT:m : Fuente del monitor; ejecutar de nuevo en m minutos Tiempo, si se modifica.

Respuesta3

Quizás también quieras echarle un vistazo al (envejecimiento)Copia Deltacliente y servidor. Básicamente, es similar a Linux.sincronizaciónImplementación para Windows, programable (usando el programador de Windows, si se desea) y su principal ventaja es quesolo las partes cambiadasde un archivo modificado (¡sí, archivo!) se transmiten. Esto puede ahorrar mucho tráfico en grandes proyectos. Una desventaja, por supuesto, es que antes debe crear y transmitir una lista de archivos.

Además, hay algunas (pequeñas) advertencias:

  • Como es un software antiguo, es posible que tengas que reemplazarlocygwin1.dllen máquinas con Windows. (Solo si sincroniza archivos entre Linux y Windows. Utilizacygwincomo marco subyacente que no manejaba correctamente la conversión de nombres de archivos Unicode/UTF-8 de 16 bits en ese momento).
  • No es exactamente tan fácil de usar, deberías echarle un vistazo a Linux.página de manual de rsyncpara explotar todo su potencial.
  • En Windows, requiere una máquina »cliente« y »servidor«.
  • Si el servidor es una máquina Linux, tendrás que configurarrsyncdcorrectamente.
  • No es compatible con Volume Shadow Copy de Windows (aunque puede que no sea necesario).

Bueno, también tiene ventajas (por eso todavía lo uso a diario):

  • Totalmente compatible con *NIX rsync y rsyncd. Un sistema de sincronización probado, conocido y altamente eficiente. Aún.
  • Mantiene los gastos generales reducidos: sólo los datos modificados (¡incluso los archivos internos!) se transportan a través de la red. Por lo tanto, también es muy bueno si estás teletrabajando o te conectas a tu servidor a través de conexiones lentas.
  • A prueba de fallos, aparentemente. He sincronizado muchos gigabytes de datos a lo largo de los años y no se produjo ni un solo fallo al "parchear" los archivos de destino. Aunque al principio el concepto me pareció un poco preocupante.
  • Todavía uso DeltyCopy para realizar copias de seguridad de archivos desde máquinas con Windows tanto en un servidor central Linux como en un servidor Windows 2003 a diario. Funciona muy bien y es seguro si se instala correctamente.

Bueno, depende de ti. ¡Divertirse! (¡Y cuéntanos sobre FreeFileSync!)

Respuesta4

Un comando útil es xcopy /m src\* dest. esto copiará todos los archivos de src a dest ylimpiael bit de archivo en todos los archivos src. Cada vez que toque un archivo src, Windows configurará automáticamente el bit de archivo. La próxima vez que lo ejecute, xcopy /msolo copiará los archivos modificados.

Si desea ejecutarlo continuamente, escriba un pequeño 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

información relacionada