Copias incrementales Windows-Linux y viceversa (MEJORADA).

En este tutorial, vamos a mejorar lo hecho en los anteriores con rsync. El uso de cygwin sin duda es un buen método, pero podemos hacer uso de algo más seguro como es la herramientas cifs.

Esta utilidad adjunta o monta el recurso de red compartido (o exportado) en un servidor remoto.
Tras montar una carpeta, veremos cómo se sincroniza con la de un servidor Windows y usando rsync conseguiremos hacer las copias de seguridad a la carpeta montada y estos datos lo tendremos tanto en Windows como en Linux. Comenzamos.


Instalamos cifs-utils en nuestra máquina Linux (Debian en mi caso) con el comando conocido apt-get install:


Voy a crear la carpeta que montaremos en Linux:


También nos iremos al servidor Windows y compartiremos la carpeta que quedará sincronizada con la que he creado en Linux. Tan solo habrá que darle a propiedades de la carpeta, compartir, añadimos los usuarios que tendrán permisos y comenzará a compartirla:



La he llamado copiawindows:


Bien, una vez que tengamos las dos carpetas que sincronizaremos, vamos a comenzar a montar en Linux la carpeta creada. En un archivo pondremos el usuario y contraseña del usuario de Windows. Tendrá el siguiente formato:


Ahora le daré los permisos para que solo el usuario pueda leerlo y escribir en él:


Comezamos con el montaje de la carpeta. En el fichero /etc/fstab escribiremos la siguiente línea:












Vamos a explicarla un poco para entenderla mejor.

Lo primero es la carpeta compartida Windows, seguida de la que montaremos de Linux y el cifs. 

"noauto" se usa para que se monte automáticamente la carpeta y después le indicamos las credenciales de Windows que apuntan al archivo que creamos con su usuario y contraseña.
Finalmente indicamos con disk_mode y fmask que tendrán todos los privilegios (777).

Continuamos y ahora en el archivo rc.local le vamos a decir que cada vez que inicie sesión se monte la carpeta, para asegurarnos que lo haga correctamente. Solo tenemos que añadirle la linea de mount:

Ahora procedemos al montaje. Usamos mount -a:



Comprobamos como se ha montado correctamente:


Automatizando las copias de seguridad.


Procedemos a instalar rsync para poder realizar las copias de seguridad:


Ahora crearé un script que contenga el comando rsync que haga la copia de lo que necesito a la carpeta que hemos montado (recordad darle permisos con chmod):


Usamos crontab -e y haremos que se realice automáticamente cada viernes a las 15:00:


Ya tenemos programada la tarea.

Comprobación de que se realiza correctamente.

Vemos el contenido de la carpeta Datos:


Ejecutamos el script para que se realice la copia:


Nos vamos al servidor Windows, en su carpeta compartida y comprobamos como se ha copiado toda la carpeta Datos correctamente:


Comprobación de que se realiza correctamente al contrario.

Vamos a comprobar también que si guardamos nuestros datos en nuestra carpeta de Windows "copiawindows" lo tendremos en Linux copiados.

Voy a usar Robocopy por línea de comandos para comprobarlo. 

Copiaremos la carpeta Documentos al completo a la carpeta compartida con el siguiente comando:



Nos vamos a Debian y comprobamos como tenemos todos los archivos que contenían la carpeta Documentos en Windows Server.


Para automatizar la copia solamente tenemos que crear un archivo batch en el que copiamos el comando que hemos ejecutado. En el programador de tareas de Windows Server programamos que se ejecute el script cuando queramos, en este caso cada viernes a las 15:00.

Este es el script:



Entonces nos vamos a programador de tareas y le damos a nueva tarea básica:


Le indicamos que la queremos semanalmente:


Le indicamos el día y la hora:


Le decimos el script que queremos que ejecute, en este caso el que hemos visto anteriormente:


Y listo, ya tendremos programada la copia en Windows cada semana:



Cómo copiar enlaces simbólicos con rsync.

Esta es una duda que puede surgir a mucha gente. ¿Cómo copio los enlaces simbólicos de Linux en una máquina Windows?

Pues bien, el propio rsync trae un parámetro con el que nos copia el enlace y todos los archivos a los que apunta para tenerlos disponibles en Windows. Vemos como sería.


Usamos rsync pero esta vez le añadimos la opción -k para que los enlaces simbólicos nos los copie con todo el contenido al que apuntan:


Nos vamos al servidor de Windows y comprobamos como tenemos el directorio del enlace simbólico con todos sus ficheros que creamos en el original:




Y eso es todo!! Espero que les haya servido de ayuda y si tienen alguna duda pueden dejarlos en los comentarios de este tutorial y trataré de ayudarles lo mejor posible. Saludos!

Fuentes:

Comentarios

Entradas populares de este blog

Comando TOP y HTOP

Inittab y Upstart.

Copias incrementales con Rsync. Linux a Windows (Parte 1).