+34 911 599 883

+34 911 895 172

Instalar y configurar rsync para Windows

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.