Hoy aprendemos cómo migrar datos de un servidor a Synology con RSYNC. En algunas ocasiones me toca migrar datos de servidores de archivos, NAS de marca blanca… a un NAS Synology, usaremos la sincronización.
Algunos clientes a los que ayudo son muy básicos, solo quieren tener el recurso compartido y que todos los empleados puedan acceder a él, de eso va el post de hoy, migrar los datos de un sitio a otro.
¡No se van a copiar los permisos!
![Migrar datos de un servidor a Synology con RSYNC](https://www.labsmac.es/wp-content/uploads/2023/08/Migracion-datos-de-un-servidor-a-Synology-con-RSYNC.png)
La migración de datos que voy a explicar se enfoca en sincronizar los datos de un servidor de archivos ( NFS o SMB) a un NAS Synology, es decir, lo que exista en el servidor antiguo existirá en el Synology y lo que se elimine en el servidor antiguo se elimine del Synology (esto último es opcional), para ello usaremos el poderosísimo comando, RSYNC.
Tabla de contenidos
Sincronizar vs Copiar
En esta ocasión prefiero sincronizar a copiar, por el siguiente motivo:
El cliente puede trabajar sin interrupciones con el servidor antiguo, a la par se monta el NAS Synology para que sincronice los datos contra este.
![Migracion de datos nas servidor a synology](https://www.labsmac.es/wp-content/uploads/2023/08/migracion-datos-nas-servidor-a-synology.png)
Una vez acabado, se hace el cambio del servidor viejo al Synology, y es la única vez que se le corta el servicio al cliente.
Si en vez de sincronizar, nos ponemos a copiar y pegar, tendriamos que estar pendiente de si el cliente ha creado o modificado o creado archivos. Por ello, en esta casuística, utilizo el comando RSYNC.
En ocasiones, si convenzo al cliente de crear jerarquia de carpetas, usuarios, grupos y permisos, el proceso se dilata algo más pero con los datos ya migrados y sobretodo actualizados.
Cómo funciona el comando RSYNC
RSYNC es una comando bastante completo que nos ayuda a sincronizar y copiar archivos de forma muy eficiente. Una característica clave, es la capacidad de copiar solo los cambios realizados de los archivos en lugar de copiar el archivo por completo.
Rsync divide los archivos en bloques de datos más pequeños para compararlos y sincronizarlos de manera eficiente. Para realizar las comparaciones usa hashes y la técnica de delta encoding.
![](https://www.labsmac.es/wp-content/uploads/2023/08/rsync-synology-como-funciona.png)
Si usamos un comando básico de copiar, será menos eficiente ya que si se detecta un cambio en un archivo de origen, copiará todo el archivo.
Migración, montar carpeta remota en Synology
Synology te permite montar un recurso compartido alojado en otro PC/Servidor y que lo pueda mostrar como suyo. De esta forma «engañaremos» al comando RSYNC y que el piense que tiene la dos carpetas dentro del propio NAS, con ello también simplificamos el comando.
Para montar una recurso compartido dentro del Synology, tiene que estar alojado dentro de una carpeta raiz, la llamaremos FileServer. Dentro de esta, dos subcarpeta:
- TEMPORAL, que montará los datos que existen en la carpeta del NAS o servidor antiguo.
- DATOSEMPRESA, que será la carpeta definitiva que contengan los datos.
![](https://www.labsmac.es/wp-content/uploads/2023/08/montar-recurso-compartido-synology.png)
Ahora si, montaremos el recurso compartido dentro de la carpeta TEMPORAL. Dentro de File Station, clicamos en Herramientas > Montar carpeta remota > Carpeta compartida de CIFS / NFS, en este caso usaremos CIFS.
![](https://www.labsmac.es/wp-content/uploads/2023/08/montar-carpeta-remota-smb-cifs-en-synology.png)
Se abrirá una pequeña ventana donde introduciremos los datos para acceder al recurso compartido remoto y montar los datos dentro de la carpeta TEMPORAL del Synology.
![](https://www.labsmac.es/wp-content/uploads/2023/08/montar-carpeta-remota-synology-por-SMB.png)
Ya lo tenemos, si nos fijamos la icono de la carpeta TEMPORAL ha cambiado, eso significa que es una carpeta remota. Una vez hecho eso puedes entrar y verificar los datos.
Para acabar, vamos a ejecutar el comando RSYNC para empezar a sincronizar los datos.
![](https://www.labsmac.es/wp-content/uploads/2023/08/rsync-synology-carpeta-remota-smb.png)
Comando:
Migración, ejecutar RSYNC en Synology
Una vez montada la carpeta remota, vamos a ejecutar el comando RSYNC. Podemos hacerlo de dos formas:
- Conectándonos por SSH al Synology y ejecutar el comando RSYNC
- Programar una tarea ejecutando el comando RSYNC dentro de Synology.
Comando RYSNC
El comando RSYNC es muy potente, puedes pedir ayuda con:
man rsync
Ejemplo del comando
rsync -avh --exclude='*.pdf' --exclude='carpeta' --delete origen destino
- Opción -a, Esta opción para mi es la más importante, activa el modo «archivos». Realiza una copia recursiva, preserva atributos y permisos, lo que incluye la fecha y hora de modificación, permisos, propietarios y grupos.
Lo que nos interesa es mantener la fecha-hora de modificación y que sea de forma recursiva. - Opción -v, Activa el modo verbose para ver detalladamente lo que se copia, lo veo casi obligatorio al usarlo mediante SSH,
- Opción -h, La información se muestra en un formato legible para humanos
- Opción -r, Copiar datos de forma recursiva pero no mantiene las fechas de modificación, permisos, etc.
- Opción –delete, con esto forzamos una sincronización en espejo, es decir, si eliminamos algo del origen se eliminará del destino.
Me explico, si no tenemos activada esta opción rsync copiará los datos de origena destino pero si eliminamos algo del origen no se borrará en el destino, al usar la opción –delete forzamos que se borren también en el destino. - Opción –exclude, Mediante esta opción podemos excluir archivos que no queramos copiar, podemos indicarle un nombre de carpeta, extensión de archivos…
Muy importante para excluir carpetas como la papelera de Windows: –exclude=’$RECYCLE.BIN’ –exclude=’$Recycle.Bin’ –exclude=’System Volume Information’
Para excluir archivos basurilla de MAC: -exclude=’.DS_Store’
RSYNC mediante SSH
Para ejecutar el comando RSYNC mediante SSH, tendrémos que activar SSH en el NAS y conectarnos de forma remota.
ssh usuario@IP_o_NombreNAS
Las carpetas compartidas de Synology se guardan en el directorio Volume1
![](https://www.labsmac.es/wp-content/uploads/2023/08/ssh-carpetas-compartidas-synology.png)
Nos movemos dentro de la carpeta raíz que creamos, en este caso FileServer
Dentro de esa carpeta, ejecutaremos el comando según nuestras necesidades, un ejemplo:
rsync -av --delete --exclude='.DS_Store' TEMPORAL/ DatosEmpresa/
![](https://www.labsmac.es/wp-content/uploads/2023/08/rsync-av.png)
Ya esta!, empezará a sincronizar, solo tienes que esperar, no tendrás que preocuparte si el cliente crear o modifica archivos, tu solo te encargarás de ejecutar el comando de nuevo y verás como se actualizan los datos.
Programando una tarea de RSYNC
Podemos programar una tarea dentro de Synology para que RSYNC se ejecute de forma periodica o a una fecha/hora en concreto.
Para ello vamos a Panel de Control > Programador de tareas > Tareas programadas > Script definido por usuario
![](https://www.labsmac.es/wp-content/uploads/2023/08/programador-de-tareas-rsync-synology.png)
Elegimos un nombre para la tarea, un usuario y marcamos la casilla para habilitarla.
![](https://www.labsmac.es/wp-content/uploads/2023/08/crear-tarea-programada-synology-rsync-1.png)
En la pestaña programa, elegimos si se la tarea se ejecutará de forma periódica o en una fecha dada. Lo configuramos según nuestros requisitos.
![](https://www.labsmac.es/wp-content/uploads/2023/08/creat-tarea-programada-synology-rsync-2.png)
Finalmente, en la última pestaña podemos configurar el comando RSYNC y opcionalmente que nos envie notificaciones por correo. Eso es todo, le damos OK y ya lo tendriamos configurado.
![](https://www.labsmac.es/wp-content/uploads/2023/08/creat-tarea-programada-synology-rsync-3.png)
Si queremos ver el resultado de la tarea, dentro del programador de tareas, seleccionamos la tarea > Acción > Ver resultado.
![](https://www.labsmac.es/wp-content/uploads/2023/08/historico-tareas-programadas-synology.png)
Eso es todo por hoy chicos! Espero que les les sirva el post y que hayan aprendido unas cuantas cosas sobre Synology y RSYNC. Nos vemos en el próximo post 😉