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
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
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