Principalmente hay dos ports de rsync para Windows. Uno es el Deltacopy y otro el cwrsync. Para un uso más técnico deberemos decantarnos por el cwrsync, ya que el otro es un frontend y la verdad, echamos en falta poder configurar todas las opciones disponibles a nuestro gusto.
Hay dos versiones de cwrsync, una que hace de servidor y otra de cliente. La de servidor se instala en uno de los equipos y la de cliente en el resto.
Una vez instalado en el servidor, se instala un servicio Rsyncserver que configuraremos en arranque automático. También deberemos editar el archivo: C:\program files (x86)\ICW\rsyncd.conf con el siguiente contenido:
uid = 0 # Esto es importante ya que si no, da fallo en windows. gid = 0 # Esto es importante ya que si no, da fallo en windows. use chroot = false strict modes = false hosts allow = * log file = rsyncd.log # Module definitions # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work # [documentos] # Es el nombre del recurso rsync que queremos crear, se llaman "módulos" #path = /cygdrive/c/work path=/cygdrive/c/prueba/Datos/Documentos # Ruta a la que hace referencia este "módulo" read only = false transfer logging = yes Y en el cliente, es relativamente sencillo ya que solo deberemos programar uan tarea con un .bat que llame al rsync con las opcinoes que deseemos, también viene incluido un archivo .cmd de prueba para que lo modifiquemos a nuestro antojo. Este sería un ejemplo para usar el módulo de la parte superior: @ECHO OFF REM ***************************************************************** REM REM CWRSYNC.CMD - Batch file template to start your rsync command (s). REM REM By Tevfik K. (http://itefix.no) REM ***************************************************************** REM Make environment variable changes local to this batch file SETLOCAL REM ** CUSTOMIZE ** Specify where to find rsync and related files (C:\CWRSYNC) SET CWRSYNCHOME=C:\Program Files (x86)\CWRSYNC REM Set CYGWIN variable to 'nontsec'. That makes sure that permissions REM on your windows machine are not updated as a side effect of cygwin REM operations. SET CYGWIN=nontsec REM Set HOME variable to your windows home directory. That makes sure REM that ssh command creates known_hosts in a directory you have access. SET HOME=%HOMEDRIVE%%HOMEPATH% REM Make cwRsync home as a part of system PATH to find required DLLs SET CWOLDPATH=%PATH% SET PATH=%CWRSYNCHOME%\BIN;%PATH% REM Windows paths may contain a colon (:) as a part of drive designation and REM backslashes (example c:\, g:\). However, in rsync syntax, a colon in a REM path means searching for a remote host. Solution: use absolute path 'a la unix', REM replace backslashes (\) with slashes (/) and put -/cygdrive/- in front of the REM drive letter: REM REM Example : C:\WORK\* --> /cygdrive/c/work/* REM REM Example 1 - rsync recursively to a unix server with an openssh server : REM REM rsync -r /cygdrive/c/work/ remotehost:/home/user/work/ REM REM Example 2 - Local rsync recursively REM REM rsync -r /cygdrive/c/work/ /cygdrive/d/work/doc/ REM REM Example 3 - rsync to an rsync server recursively : REM (Double colons?? YES!!) REM REM rsync -r /cygdrive/c/doc/ remotehost::module/doc REM REM Rsync is a very powerful tool. Please look at documentation for other options. REM REM ** CUSTOMIZE ** Enter your rsync command(s) here rsync -rt /cygdrive/c/datos/documentos/ servidorbd::documentos # Aquí indicamos el origen y el destino en el servidor de sincronización servidor:modulo.