Daniel López Azaña

Tema

Social Media

Blog

GNU/Linux, Open Source, Cloud Computing, DevOps y más...

Realizar backups de Windows mediante rsync con DeltaCopy Server

Rsync & Windows logos

¿Rsync y Windows?

Muchas redes y sistemas corporativos con máquinas heterogéneas utilizan el protocolorsync para realizar backups de servidores o para mantener sincronizados automáticamente los ficheros de uno o varios directorios en diferentes máquinas. Linux incorpora de forma nativa la utilidad rsync y otras herramientas asociadas, pero, ¿qué hacer cuando necesitamos hacer copias de seguridad de carpetas Windows de forma automática desde un NAS o una máquina remota? Una opción podría ser utilizar Samba para poder leer el contenido de dichas carpetas desde Linux, pero se trataría de una solución bastante compleja, pues nos obligaría a configurar Samba en el lado del servidor, configurar los distintos permisos y opciones en el propio Windows y además nos impone la restricción de que ambas máquinas estén en la misma red local o a configurar complicadas reglas en nuestro firewall para permitir el tráfico SMB/CIFS. Y con todo ello, la transferencia a través de la red de nuestros ficheros no sería segura, pues se realizaría en claro sin ningún tipo de cifrado.

Rsync backup through network

Existe una solución mucho más sencilla, y consiste en aprovechar la flexibilidad y la seguridad que nos proporciona SSH junto con la simplicidad y fiabilidad de rsync para sincronizar ficheros a través de la red. Tan sólo necesitaremos configurar un servidor SSH en nuestra máquina Windows e instalar el software DeltaCopy Server, que hará las veces de servidor rsync.

DeltaCopy Server

DeltaCopy Server se pone a escuchar en el puerto 873 del mismo modo que lo haría el demonio rsync para atender peticiones de sincronización de ficheros.

Windows rsync listening on port 873

Debemos arrancarlo como servicio en segundo plano a través de la consola principal de configuración.

DeltaCopy configuration console - start server

Por último, simplemente especificaremos los directorios virtuales que contendrán los ficheros que queremos sincronizar y que serán los únicos visibles desde el cliente rsync. Tenemos la posibilidad de establecer estos directorios virtuales como de sólo lectura para impedir que sean modificados desde el exterior y también de establecer un usuario y contraseña, aunque si utilizamos SSH no será necesario ningún mecanismo de autenticación adicional.

DeltaCopy Virtual Directories

Comando a ejecutar desde el cliente rsync

Una vez que tenemos todo configurado en Windows ya sólo quedaría ejecutar el comando necesario para sincronizar el contenido de los directorios virtuales en la máquina cliente que se va a encargar de llevar a cabo los backups, siendo 192.168.0.20 la máquina Windows, aeat el directorio virtual y /var/data/backups/aeat/ el directorio de destino donde sincronizar los ficheros en la máquina cliente que ejecuta rsync:

$ rsync -avz --delete-before 192.168.0.20::aeat /var/data/backups/aeat/

Incluso podemos utilizar algunas opciones más avanzadas para hacer backup como rdiff-backup o rsnapshot , ya que ambas funcionan sobre rsync.

Backup Rsync Deltacopy Rsync Rsync para Windows Rsync Windows Servidor backup SSH SSH Windows
Daniel López Azaña

Sobre el autor

Daniel López Azaña

Emprendedor tecnológico y arquitecto cloud con más de 20 años de experiencia transformando infraestructuras y automatizando procesos.

Especialista en integración de IA/LLM, desarrollo con Rust y Python, y arquitectura AWS & GCP. Mente inquieta, generador de ideas y apasionado por la innovación tecnológica y la IA.

Artículos relacionados

Putty icon

Cómo crear un servidor SSH Windows

Ninguna de las versiones de Windows, ya sea Windows XP, Windows 7 u 8 o las mas modernas versiones de servidor como Windows 2008 o Windows 2012, proporciona un servidor SSH mediante el que acceder de forma estándar desde otras máquinas con distinto sistema operativo para ejecutar comandos de la consola, copiar ficheros, redireccionar puertos o automatizar el acceso mediante el empleo de claves pública/privada. La alternativa de Microsoft para esto es WinRM / Powershell, pero muchas son las ocasiones que encontraremos en las que necesitaremos un acceso estándar y compatible con otros sistemas, y qué mejor para ello que emplear el extendido y archiconocido protocolo SSH para entrar a nuestras máquinas Windows de forma segura.

18 de agosto de 2014
hot-button-ssh-command-widget-icon

Control remoto de Linux desde tu smartphone con botones y widgets SSH

En este artículo voy a hablar de una app para Android que es extremadamente útil para ejecutar comandos de forma remota en un ordenador Linux: Hot Button SSH Command Widget. Esta aplicación nos permitirá lanzar cómodamente cualquier comando que se nos ocurra en un ordenador remoto a través de SSH con sólo pulsar un botón en la pantalla de nuestro móvil o tablet, lo cual no sólo nos facilitará la automatización de tareas repetitivas, sino que además resulta muy interesante desde el punto de vista de la seguridad por los mismos motivos que expuse en mi artículo Desbloqueo automático de pantalla por proximidad de dispositivo Bluetooth, ya que nos permitirá por ejemplo bloquear y desbloquear la pantalla sin tener que escribir nuestra contraseña una y otra vez a la vista de otras personas.

15 de julio de 2017
Diagrama de una instancia EC2 con múltiples interfaces de red compartiendo la misma subred dentro de la misma zona de disponibilidad en AWS

Cómo conectar en Linux 2 interfaces de red a la misma subred de AWS

El siguiente procedimiento describe cómo permitir en Linux el uso simultáneo de 2 interfaces de red conectadas a la misma subred de AWS y que la comunicación funcione tanto a nivel interno (máquinas en la misma subred) como externo (ambas interfaces visibles desde Internet). Esto puede ser útil por ejemplo cuando queremos que una misma instancia aloje un servidor web que sirva peticiones http ó https y al mismo tiempo disponga de un servidor de websockets ws:// o wss:// que escuche en el mismo puerto 80 ó 443 respectivamente. Aunque hay otras formas de conseguirlo como configurar Nginx para que sea capaz de discriminar el tráfico web (http) del tráfico de websockets (ws) y actuar como proxy para redirigir las peticiones correspondientes al servidor de websockets, esta otra solución que planteo me parece más sencilla y en cierta medida más eficiente porque no es necesario redirigir el tráfico, lo cual siempre introducirá una pequeña latencia, y permite mantener ambos servidores totalmente independientes dentro de la misma máquina. La única pega es que necesitaremos asignar 2 direcciones IP elásticas (Elastic IP) a la misma máquina en lugar de 1, pero al mismo tiempo esto nos aportará mayor flexibilidad a la hora de establecer reglas en los grupos de seguridad o en las reglas NAT de la subred.

6 de octubre de 2017

Comentarios

MIguel Angel Rodriguez 20 de marzo de 2015
Hola, tengo una duda, no tengo mucha experiencia en esto y me gustaría saber si esto se pueden hacer respaldos de windows a linux, tengo un servidor ssh montado en centos y la mayoría de las maquinas que quiero respaldar tienen con windows 7, podria hacerlo de la manera que posteaste o tendría que utilizar otros programas?
Jesus nava 30 de julio de 2015
MIguel Angel Rodriguez, claro que lo puedes hacer, en este momento yo lo hago entre mi server debian y clientes windows. solo debes crear los usuarios unix en el servidor y en mi caso respaldo en una carpeta compartida con samba y con permisos solo apra los usuarios de esta manera los usuarios pueden ver los respaldos en mi red y carpetas comunes para que se pasen informacion y asi evitar el uso de los pendrive si me escribes a mi correo personal te paso mis script y mucha de la documentacion que me he hecho yo para compartirla en mi gerencia
Raul de la Cruz 25 de agosto de 2015
Hola, Me ha encantado el articulo y voy a seguir, al menos su espíritu. Si tengo un servidor Linux, tipo KIMSUFI o Amazon ¿Qué ventaja supone montar el servidor SSH en el equipo Windows? Intuitivamente el servidor me parece un lugar más adecuado para montar el servicio y utilizar Windows como cliente ¿no? Si fuera así ¿existe algún cliente windows de rsync que pueda hacer la parte del cliente que indicas en el articulo Raul
JOSE RIVERA 1 de septiembre de 2015
Hola necesito informacion sobre como hacer para que las computadoras de la oficina se pueda hacer backup de cada una en el servidor, el mismo es Linux y no tengo experiencia en Linux sobre esto.
Kevin Zuñiga Torres 27 de enero de 2016
Hola, te hago la misma consulta que Miguel angel. Yo tengo un servidor Rsync montado en un NAS (openmediaVault) Y todo bien para ocnfigurar entre linux (con un script para llevar mis carpetas al server). Pero con Windows no es igual, y el script varía demasiado, podrías ayudarme con un script para hacer esto? Muchas gracias!

Enviar comentario