10. COPIAS DE SEGURIDAD

Copias de Seguridad

Los datos almacenados en un disco se pueden perder en cualquier momento, están expuestos a

▪ Fallos hardware

▪ Errores humanos

▪ Malware (virus)

▪ etc

En cualquier sistema, las copias de seguridad son de vital importancia

▪ Para uso personal, cuando tenemos pocos datos y buena conexión a internet, el almacenamiento en la nube con servicios freemium como Google Cloud o Dropbox es una buena solución

▪ Para entornos más exigentes, es preferible usar nuestros propios dispositivos (pendrives o discos externos)

¿Por qué necesitamos una aplicación de sincronización?
Supongamos que queremos respaldar nuestro directorio de trabajo en un disco externo recién comprado

▪ El primer día, lo copiamos todo

▪ El segundo día queremos guardar también las copias recientes.

▪ ¿Qué hacemos?

• Podemos copiarlo todo de nuevo. Pero estamos desperdiciando recursos (tiempo, acceso a la red, tiempo de vida del disco)

• Podemos seleccionar a mano las novedades y no copiar nada más. Pero es un trabajo tedioso y propenso a errores

La solución es una herramienta de sincronización, que se ocupa de copiar sólo los ficheros y directorios que se hayan añadido o modificado, automáticamente

10.1. rsync

rsync

Permite sincronización unidireccional de dos directorios

▪ Herramienta habitual en Unix (incluyendo Linux y OS X). Hay versiones para Windows, pero su uso no es muy cómodo, requiere de componentes adicionales

▪ El esclavo contendrá una réplica del maestro. El maestro ignora el contenido del esclavo

▪ Alternando las funciones de maestro y esclavo podríamos conseguir una especia de sincronización unidireccional, pero no es recomendable, no está diseñado para ello

▪ Trabaja con sistemas de ficheros locales o remotos, pero al menos uno de los dos debe ser local

▪ Funciona sobre rcp, ssh o un demonio de rsync

▪ Es muy útil para hacer copias de segurad mediante mirrors de disco duro sobre disco duro: automatizarlo es muy sencillo y el disco duro es el medio de almancenamiento más barato de la actualidad

▪ Pero también resulta un sistema de respaldo muy volátil, deberíamos tener, adicionalmente, otros sistemas de respaldo más permanentes

rsync <opciones> directorio_maestro directorio_esclavo

▪ El directorio remoto se especifica anteponiendo usuario@maquina:

Ejemplo

rsync -e ssh -va --delete /dir1/dir2 jperez@epsilon03:/dir3/dir4

▪ Crea dentro de dir4 un directorio dir2, réplica del dir2 del maestro Error frecuente: creer que dir4 será una réplica de dir2

▪ Error frecuente: insertar espacio tras los dos puntos

Opciones

-e especifica cómo acceder a los ficheros en la máquina remota

-v verbose (prolijo en detalles)

-a modo archive: incluye subdirectorios, copia enlaces como enlaces, conserva permisos, fechas y grupo. Si lo ejecuta el root, también conserva el dueño

--delete indica que si se borra un fichero en el maestro, también se borrará en el esclavo
Atención: si montamos un nuevo maestro, vacío, y aplicamos rsync con esta opción, destruiremos el esclavo

10.2. FreeFileSync

FreeFileSync

FreeFileSync es una aplicación de sincronización de ficheros

▪ Permite comparar dos directorios, detectar las diferencias y propagarlas, de forma que ambos directorios acaben teniendo el mismo contenido

▪ Los directorios pueden estar en la máquina local o en una máquina remota accesible a través de FTP o SFTP. También soporta Google Drive

▪ Libre y gratuita, disponible para Microsoft Windows, Linux y macOS

▪ Software maduro, aparece en 2008 y se actualiza con frecuencia

Con FreeFileSync haremos principalmente dos tipos de sincronización

▪ Sincronización bidireccional

▪ Espejo

En ambos casos

▪ Antes de sincronizar tendremos dos directorios que normalmente serán parecidos pero con algunas diferencias

▪ Después de sincronizar, ambos directorios serán idénticos

Ambos directorios podrán estar en cualquier lugar

▪ En el mismo disco de la misma máquina

▪ En otro disco de la misma máquina

▪ En otro disco de otra máquina

▪ Incluso en el mismo disco pero otra máquina (como en nuestro laboratorio)

Sincronización bidireccional

En la sincronización bidireccional:

▪ Todas las novedades del primer directorio se propagarán al segundo (ficheros nuevos, modificados o borrados, directorios nuevos, modificados o borrados)

▪ Todas las novedades del segundo directorio se propagarán al primero

Tras la sincronización, ambos directorios serán idénticos Ejemplo típico:

▪ El primer directorio es mi directorio de trabajo en mi pc de casa

▪ El segundo directorio es mi directorio de trabajo en el laboratorio

Figura 5: Pantalla principal de FreeFileSync

Ventana principal. El panel de la izquierda muestra el directorio local. El de la derecha, el remoto

Espejo

En la sincronización espejo, tenemos dos directorios

▪ Uno es el principal

▪ Otro será una copia

Después de la sincronización, ambos serán idénticos Para ello:

▪ Todas las novedades del principal se llevarán a la copia

▪ En el directorio copia no debería haber novedades, y si las hay, serán ignoradas y destruidas

Ejemplo típico:

▪ El primer directorio es mi directorio de trabajo

▪ El segundo es una copia de seguridad en un disco externo

Cómo sincronizar

Para sincronizar los directorios

▪ Indicamos el primer directorio en el panel de la izquierda

▪ Indicamos el segundo directorio en el panel de la derecha

▪ Pulsamos el icono de la rueda dentada verde para especificar el tipo de sincronización (bidireccional o espejo)

▪ Pulsamos comparar

▪ Pulsamos sincronizar

Pulsando el icono del filtro, tenemos la opción de excluir algunos ficheros. Por ejemplo *.o, *.exe

En la ventana de la rueda dentada verde indicamos el tipo de sincronización

Desde el icono de la nube accedemos a la ventana de almacenamiento en línea, donde podemos indicar que el directorio estará en una máquina remota. Por ejemplo en el laboratorio de la ETSIT, accesible mediante el protocolo SFTP

Figura 6: Opciones de sincronización

Conflictos

En la sincronización bidireccional, es importante sincronizar siempre que cambiemos de máquina, de lo contrario se producirá un conflicto

Ejemplo:

▪ El lunes trabajo en casa y sincronizo el directorio contra el laboratorio

▪ El martes trabajo en el laboratorio

▪ El miércoles vuelvo a casa, pero olvido sincronizar. Añado mis cambios sobre la versión del lunes, no sobre la del martes

En este caso, tendré cambios que solo estarán en casa, y otros que solo estarán en el laboratorio

FreeFileSync nos avisará mano del problema, que tendremos que corregir a mano

El conflicto se señala con un icono en forma de chispa naranja

El problema tendremos que corregirlo nosotros manualmente: hacemos lo necesario para que uno de los directorios esté correcto y luego indicar en qué sentido debe hacerse la actualización

Guardar la configuración

Finalmente, guardaremos toda la configuración en un fichero de extensión

.ffs_gui, para poder repetir la sincronización en la siguiente ocasión, sin volver a especificarlo todo.

Aquí puedes ver una sesión de ejemplo: https://youtu.be/gJGp6liznE0