Copias de seguridad en Ubuntu 18.04 LTS con Back in Time
Back In Time es una herramienta escrita en Python3, que se ofrece bajo licencia GPL2 y que se presenta como una solución sencilla para realizar copias de respaldo en sistemas de escritorio GNU/Linux. Se basa en rsync y utiliza enlaces duros para reducir el espacio que utilizan los archivos que no hayan cambiado entre copias.
Su interfaz gráfica está basada en Qt5 y tiene la capacidad de ejecutarse tanto en escritorios GNOME como KDE.
Las copias se almacenan en el mismo formato que la información original, por lo que podrán recorrerse con un explorador de archivos cualquiera, como el propio Nautilus de Ubuntu, o incluso desde la terminal. Esto hace posible que podamos recuperar los datos copiados incluso cuando no disponemos de Back In Time.
La información sobre el propietario, el grupo al que pertenece éste y los permisos, se almacenan en un archivo de texto plano, independiente y comprimido con el nombre fileinfo.bz2. No obstante, si recuperamos una copia de seguridad sin utilizar Back in Time, los detalles sobre la propiedad y los permisos de cada archivo recuperado, se perderán.
Instalar Back in Time
Una de las ventajas inmediatas de Back In Time, es que se encuentra almacenado en los repositorios oficiales de Ubuntu, por lo que su instalación será tremendamente sencilla.
Para comenzar, abriremos una nueva ventana de terminal y actualizaremos la base de datos de paquetes almacenada por el sistema operativo, con la información proveniente de los repositorios. Así nos aseguramos de instalar la última versión disponible:
sudo apt update
Puedes abrir la ventana de terminal usando la combinación de teclas Alt + Control + T.
Cuando se complete la tarea, nos aseguraremos de tener el sistema operativo completamente actualizado. De esta forma, los paquetes instalados quedarán en la misma versión que los almacenados en los repositorios. Lo conseguimos escribiendo lo siguiente:
sudo apt upgrade
Si hubiese actualizaciones pendiente, el sistema nos mostraría información sobre ellas, para que conozcamos su nombre, el número de paquetes que se actualizarían, y el nombre y número de paquetes nuevos que habría que instalar para satisfacer las dependencias. También el número de paquetes que habría que eliminar y el número de paquetes que quedarían sin actualizar (si fuese el caso).
También aparecería la cantidad de información que sería preciso descargar y el espacio total que se ocuparía en el disco para llevar a cabo la tarea.
A continuación, ya estaríamos listo para instalar el programa. Bastaría con escribir lo siguiente:
sudo apt install backintime-gnome
apt nos informará de los paquetes complementarios que deberán instalarse para completar la tarea.
La primera ejecución de Back In Time
Para comenzar a utilizar Back In Time podemos recurrir al panel de actividades…
Cuando se muestre el panel de actividades, comenzaremos a escribir parte del nombre de la herramienta para buscarla. También puedes hacer clic sobre el botón Todas y, a continuación, localizar el icono del programa y hacer clic sobre él.
Nosotros hemos optado por el primer método.
Además, verás que la aplicación aparece repetida, aunque una de ellas contiene, entre paréntesis, la palabra root. El objetivo es que utilices esta para realizar copias de seguridad que contengan datos de diferentes usuarios del equipo, o incluso de áreas del propio sistema.
Si necesitas hacer copias únicamente de tus datos, deberás utilizar la que contiene únicamente el nombre de la aplicación, que no necesita privilegios administrativos.
Como era de esperar, en este caso, el sistema nos pide que nos autentiquemos antes de continuar con la tarea.
Escribimos la contraseña y, a continuación, pulsamos la tecla Intro o hacemos clic sobre el botón Autenticar.
La primera vez que tratamos de abrir la aplicación, aparece una pequeña ventana avisándonos de que Back In Time no está configurado y nos ofrece la posibilidad de recuperar una configuración anterior.
A continuación, se abrirá la ventana Preferencias para establecer el primer perfil de copia de seguridad. Como puedes comprender, la definición de este perfil es un proceso delicado, al que debemos prestar atención para que cumpla exactamente con nuestras expectativas.
Lo primero que observamos es que la ventana Preferencias se encuentra dividida en varias solapas: General, Incluir, Excluir, Auto eliminar, Opciones y Opciones avanzadas. Para entender cómo debemos crear un perfil, vamos a seguir el proceso paso a paso, revisando el contenido de cada solapa.
La primera solapa es General. En ella, comenzaremos por indicar el lugar donde se guardarán las copias de seguridad; lo haremos escribiendo el valor adecuado en el cuadro de texto Dónde guardar las instantáneas.
Si lo hacemos, aparecerá una nueva ventana titulada Dónde guardar las Instantáneas. En ella, deberemos navegar hasta el lugar donde queremos guardar las copias de seguridad.
Aunque probablemente ya lo habrás supuesto, es importante dejar claro que no se podrá utilizar, como almacenamiento para las instantáneas, una ubicación que vaya a formar parte de las propias instantáneas.
A continuación, estableceremos la frecuencia con la que se realizarán las copias, eligiendo uno de los valores de la lista Agenda programada. Los valores posibles son:
- Deshabilitado.
- En cada arranque/reinicio.
- Cada cinco minutos.
- Cada diez minutos.
- Cada 30 minutos.
- Cada hora.
- Cada 2 horas.
- Cada 4 horas.
- Cada 6 horas.
- Cada 12 horas.
- Horas personalizadas
- Cada día.
- Repeatedly (anacron)
- Cuando la unidad sea conectada (udev)
- Cada semana.
- Cada mes.
Los valores Repeatedly, Cada semana y Cada mes, también nos permiten incluir la hora a la que se realizará la copia.
Aquí hemos elegido Cada cinco minutos para que el ejemplo evolucione rápidamente, pero no es lo más frecuente.
En la solapa Incluir indicaremos las carpetas que queremos copiar. Podemos usar el botón Añadir archivo para añadir archivos de forma individual, el botón Añadir carpeta, para añadir directorios completos o Remove, para descartar algunas de las ubicaciones que hayamos añadido con anterioridad.
Al hacerlo, aparecerá la ventana Incluir carpeta, donde elegiremos una ubicación que queramos tener salvaguardada mediante las copias de seguridad.
En nuestro caso, elegiremos la carpeta /home, que contiene los archivos de todos los usuarios del sistema.
Lógicamente, este proceso podemos repetirlo tantas veces como sea necesario.
Por su parte, la solapa Excluir nos facilita la eliminación de una parte del contenido a copiar. Por ejemplo, podemos eliminar la carpeta Descargas del perfil de un usuario.
Aparecerá la ventana Excluir carpeta, donde sólo tenemos que localizar la carpeta que queremos descartar y hacer clic sobre el botón Choose.
Si quisiéramos descartar todas las carpetas que siguieran un determinado patrón, haríamos clic sobre el botón Add y, en la ventana Excluir patrón escribimos una ruta usando caracteres comodín.
En la solapa Auto eliminar podemos indicar cuándo se eliminarán las copias de seguridad antiguas:
-
Cuando las copias sean más antiguas de un número de días, semanas o años.
-
Cuando el espacio libre en el disco donde estamos guardando las instantáneas sea inferior a un número determinado de Mb ó Gb.
-
Cuando el número de inodos disponibles sea inferior a un determinado porcentaje.
-
Realizar un borrado inteligente, que nos permite combinar diferentes opciones:.
-
Mantener todas las instantáneas durante, como mínimo, un número determinado de días.
-
Mantener una instantánea por día para los últimos n días.
-
Mantener una instantánea por semana para las últimas n semanas.
-
Mantener una instantánea por mes para los últimos n meses.
-
Mantener una instantánea por año.
n es un valor que estableceremos, bien a mano, bien pulsando los botones ascendentes o descendentes.
Por último, podemos indicar que no se eliminen las instantáneas a las que hayamos puesto nombre (No eliminar las instantáneas con nombre). Una opción que, de forma predeterminada, se encuentra habilitada.Para poner nombre a una instantánea en particular usaremos el botón Nombre de la instancia () de la ventana principal de Back In Time.
En la solapa Opciones, encontramos algunas características complementarias:
-
Activar notificaciones: Cuando está seleccionada y se produce algún tipo de error mientras se toma una instantánea, aparece una ventana de notificación avisando del incidente.
-
Desactivar instantáneas cuando se esté con batería: Podemos habilitarla para evitar que se tomen instantáneas mientras trabajamos con la batería en un ordenador portátil.
-
Run only one snapshot at a time: Esta opción evita que se inicie la creación de una copia cuando aún no haya terminado la anterior.
-
Backup replaced files on restore: Cuando la opción está habilitada, si necesitamos recuperar archivos o directorios, Back In Time hará una copia de respaldo de los archivos que vamos a sustituir.
-
Continuar si hay errores (mantener imágenes incompletas): Si se produce un error durante la creación de una copia de seguridad, el programa mantendrá los datos que hayan alcanzado a copiarse, aunque no se haya completado la tarea.
-
Utilizar la suma de verificación (checksum) para detectar cambios: Completa el modo habitual de rsync para detectar cambios, basado en el tamaño de los archivos y su fecha de última modificación.
-
Modo rsync completo. Puede ser más rápido pero:
-
Instantáneas no son de solo lectura.
-
El sistema de ficheros destino debe soportar todos los atributos de Linux (fechas, permisos, usuario, grupo, …).
-
Chequear cambios (no tomar instantánea si nada ha cambiado): De este modo, se evita hacer copias innecesarias.
-
Detalles del log: Aquí indicamos el nivel de detalle que debe tener el archivo de registro. Tenemos varias opciones:
-
Ninguno.
-
Errores
-
Cambios & Errores.
-
Todo.
-
Por último, en la solapa Opciones avanzadas, nos encontramos varias características más:
-
Run ‘nice’ nos ofrece dos opciones:
as cron job (default. enabled): nice es el comando que permite a Back In Time lanzar un proceso con una prioridad específica y esta opción nos permite que nice se ejecute como una tarea programada de cron.
on remote host (default: disabled): también existe la posibilidad de ejecutarlo en un equipo remoto aunque, de momento, la opción aparece deshabilitada.
-
Run ‘ionice’:
as cron job (default. enabled): el comando ionice modifica la prioridad con la que un proceso accede al disco. Gracias a él, Back In Time puede realizar instantáneas de forma transparente al usuario. Con esta opción establece si ionice debe ejecutarse como una tarea programada de cron.
when taking a manual snapshot (default:disabled): aquí estableceremos si también debe ejecutarse ionice cuando se realice una copia de seguridad de forma manual.
on remote host (default: disabled): como en el caso anterior existe la posibilidad de ejecutarlo en un equipo remoto aunque, de momento, la opción aparece deshabilitada.
De forma predeterminada, todos los procesos tienen en Linux la misma prioridad (que se identifica con el valor 0).
Las prioridades pueden ir desde 19, que es la más baja, hasta -20, que es la más alta.
-
Run ‘rsync’ with ‘nocache’: Evita que la aplicación tenga repercusión sobre el funcionamiento del mecanismo de caché para el sistema de archivos de GNU/Linux.
De momento las opciones están deshabilitadas, pero nos permitirá elegir entre el equipo local u otro remoto, en el caso de estar trabajando sobre él.
-
Redirect stdout to /dev/null in cronjobs. (default: enabled): Evita que cualquier mensaje producido por el programa, sea enviado al dispositivo de salida estándar.
-
Redirect stderr to /dev/null in cronjobs. (default: enabled): Evita que cualquier mensaje de error producido por el programa, sea enviado al dispositivo de salida estándar.
-
Limit rsync bandwidth usage: Permite fijar el ancho de banda máximo consumido por rsync cuando usamos la conexión de red. De momento, la opción aparece deshabilitada.
-
Preservar ACL: Permite respetar las Listas de Control de Acceso de los archivos y carpetas.
-
Preservar atributos extendidos: Permite mantener los atributos extendidos de los archivos y carpetas.
-
Copiar vínculos incompletos (funciona sólo con vínculos absolutos): Para copiar los enlaces inseguros.
-
Copiar vínculos (desarbitrar víncluos simbólicos): Para copiar enlaces, suprimiendo los enlaces simbólicos.
-
Paste additional options to rsync: Esto nos permite controlar el modo en el que se ejecutará rsync al realizar una copia de seguridad.
Cuando estemos listos, hacemos clic sobre el botón OK.
La ventana principal de Back In Time
Después del paso anterior, llegaremos al la ventana principal de Back In Time y veremos el aspecto que tendrá el programa la siguientes veces que lo ejecutemos.
La ventana se divide fundamentalmente en tres áreas:
-
En la parte superior, una barra de herramientas que recoge las características más útiles del programa. Aquí, por ejemplo, encontraremos el botón Preferencias (), que nos permitirá volver a la ventana de configuración de perfiles en cualquier momento. Otro de los botones que pueden resultar muy útil es Tomar instantánea (), que permite realizar una nueva instantánea, de forma manual, en cualquier momento.
-
En el panel de la derecha, información sobre el sistema que estamos copiando.
-
A la izquierda, un listado con todas las instantáneas tomadas.
Antes de continuar, es importante que hagamos dos observaciones:
-
Debemos tener en cuenta que la primera copia tardará bastante, porque deberán duplicarse todos los datos que hayamos indicado. Sin embargo, las siguientes copias serán más rápidas, ya que son incrementales y sólo se duplicarán los datos que hayan cambiado. Lo mismo ocurre con las restauraciones: Son inteligentes y sólo se recuperan los datos que hayan cambiado desde que se copiaron.
-
No se produce ningún tipo de compresión de los datos. Esto repercute en que Back In Time necesita más espacio que otras utilidades de copia para preservar los mismos datos. No obstante, aporta la ventaja de que los datos serán accesibles aunque no dispongamos del propio programa. Como explicamos al principio de este apartado, incluso podremos acceder a ellos de forma manual, a través del navegador de archivos.
Por ejemplo, en la siguiente imagen podemos ver la salida de la orden tree en la que se aprecia la estructura de directorios completa del disco que contiene las copias de seguridad.
Si quieres hacer la comprobación de la imagen siguiente necesitarás instalar el comando tree pero, como está en los repositorios, será tan sencillo como ejecutar la siguiente orden:
sudo apt-get install tree
Recuperar datos con Back In Time
Restaurar los datos del ordenador en un momento en particular es tan sencillo como hacer clic sobre la instantánea adecuada (observa que la instantánea sobre la que estás actuando también se incluye en la parte superior de la ventana).
Cuando estemos seguros de que se trata de la instantánea adecuada, hacemos clic sobre el botón Restaurar.
Si lo que necesitamos es recuperar únicamente un archivo, un grupo pequeño de archivos o una carpeta, podemos elegir la instantánea correspondiente y después navegar por el árbol de directorios de la derecha hasta la ubicación de dichos archivos. Después, basta con seleccionarlos y hacer clic con el botón derecho del ratón sobre ellos.
También disponemos de la opción Recuperar en… para recuperarlos en una ubicación diferente y no sobreescribir el archivo original.
Back In Time desde la línea de comandos
El modo en el que consigue Back In Time llevar a cabo las copias, en los momentos que indiquemos, consiste en crear una tarea programada para el demonio cron.
De hecho, puedes ver su contenido ejecutando el comando:
sudo crontab -e
Como puedes imaginar, hemos antepuesto sudo porque estamos ejecutando la versión root de Back In Time. Cuando ejecutes para realizar únicamente copias de tus datos, podrás ahorrártelo.
Como ves en la imagen, el contenido del archivo será parecido a este:
*/5 * * * * /usr/bin/nice -n 19 /usr/bin/ionice -c2 -n7 /usr/bin/backintime backup-job >/dev/null
Aunque puede variar la temporización. Recuerda que nosotros indicamos en la interfaz gráfica que se hicieran copias cada 5 minutos.
Después del tiempo, se incluyen los valores para nice e ionice y, por último, el comando que realizará la copia de seguridad:
/usr/bin/backintime backup-job
El argumento backup-job (que también podríamos escribir como –backup-job) que haga una nueva copia en segundo plano (si es necesario). Por último, se descarta cualquier salida que se produzca (>/dev/null).
Conociendo el modus operandi de Back In Time, podemos ajustar su comportamiento de una forma más precisa. Por ejemplo, utilizando temporizaciones que el programa no tiene previstas de forma predeterminada.
Si necesitas más detalles sobre la programación de tareas en Ubuntu, recuerda que en SomeBooks.es ya tenemos un artículo que te lo explica:
Programar una tarea repetitiva desde la terminal de Ubuntu 18.04 LTS
Y si lo que necesitas son más detalles sobre el manejo de Back In Time desde la línea de comandos, puedes echar un vistazo a la documentación oficial:
http://manpages.ubuntu.com/manpages/bionic/man1/backintime.1.html
Observaciones finales
Antes de terminar este apartado, me gustaría incluir algunas observaciones / recomendaciones finales:
-
El perfil de creación de instantáneas se guarda en un archivo llamado config. Este archivo se crea automáticamente desde la ventana Preferencias de la interfaz gráfica, pero puede ser útil copiarlo o modificarlo en modo texto. Para ello es importante saber dónde se encuentra
-
Si utilizas Back In Time como administrador, podrás encontrarlo en /root/.config/backintime.
-
Si lo utilizas como un usuario normal, lo encontrarás en /home/usuario/.config/backintime (sustituyendo usuario por el nombre de la cuenta de usuario que estés utilizando).
-
-
Debemos elegir bien el lugar donde se almacenan las instantáneas. Quizás lo más común sea un directorio dentro del propio disco duro o una partición independiente. Sin embargo, merece la pena valorar otras alternativas:
-
Un dispositivo externo (un disco duro o una memoria USB): Dada la bajada de precios que están presentando este tipo de dispositivos, esta puede ser una solución muy interesante para los entornos de trabajo más modestos.
-
Un directorio compartido en un servidor de la red: Esta solución es adecuada para entornos más profesionales. Para implementarla, podemos utilizar NFS, que lo estudiaremos en otro capítulo más adelante.
-
Un servicio de almacenamiento en la nube: Este es otro tipo de servicios que han adquirido gran relevancia desde hace unos años. Una vez contratado el servicio, sólo habrá que establecer como directorio de destino para las instantáneas alguno que se encuentre dentro de los que se sincronizan con el servicio elegido (por ejemplo, DropBox). Esta es una solución que añade un nivel más de seguridad a la implantación, con un esfuerzo mínimo por nuestra parte.
-
Y esto es todo por el momento. Espero que te resulte útil.