Copias de seguridad en Ubuntu 14.04 LTS con Back in Time

Publicado por P. Ruiz en

Back In Time logoBack In Time es una herramienta escrita en Python, 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

Instalar Back In Time es tan fácil como abrir el Centro de software de Ubuntu y comenzar a escribir su nombre. Observa que existen tres versiones. Las dos primeras son específicas de la interfaz gráfica KDE (una para usuarios normales y la otra para administradores). La tercera es para el entorno gráfico Gnome (adecuada también para Unity) y, como veremos después, también podremos ejecutarla en modo usuario normal o administrador.

Una vez elegida la versión correcta, en nuestro caso la correspondiente a la interfaz Gnome, basta con hacer clic sobre el botón Instalar.

Como era de esperar, el sistema nos pide que nos autentiquemos antes de llevar a cabo la instalación.

Escribimos la contraseña y hacemos clic sobre el botón Autenticar.

Una vez instalada la aplicación, su icono aparecerá en el Launcher. (aunque también puede encontrarse en el Dash, como cualquier otra aplicación).

Un usuario normal, que sólo necesita hacer copias de sus propios datos, puede iniciar la aplicación haciendo clic sobre este icono.

Sin embargo, cuando somos administradores, deberemos encargarnos de hacer copias de seguridad de los datos de todos los usuarios del sistema. En estos casos, deberemos ejecutar Back In Time con privilegios de root.

Para lograrlo, abriremos el Dash y comenzaremos a escribir el nombre de la aplicación. Veremos que aparece repetido, aunque el segundo incluye la palabra root entre paréntesis.

En nuestro caso, haremos clic sobre este segundo icono.

Veremos aparecer una ventana de terminal pidiéndonos autorización para ejecutar Back in Time con privilegios de administrador.

La escribimos y pulsamos la tecla Intro.

La primera ejecución de Back in Time

La primera vez que se abre la aplicación, se abre también la ventana Settings para establecer el primer perfil de copia de seguridad. Esto se debe a que Back In Time permite establecer varios perfiles de copia, con características diferentes. Así, por ejemplo, un perfil podrá encargarse de hacer una copia de todo el sistema una vez al mes, y otro diferente podrá hacer copias de los datos de cada usuario una vez al día.

Como puedes comprender, la definición del 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 Settings 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.

… Aunque probablemente resulte más sencillo hacer clic sobre el botón que aparece a su derecha

Si lo hacemos, aparecerá una nueva ventana titulada Carpeta de Instantáneas. En ella, deberemos navegar hasta el lugar donde queremos guardar las copias de seguridad.

En nuestro caso, usaremos un segundo disco duro que hemos añadido para este objetivo.

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.
  • Diariamente (anacron)
  • Cuando la unidad sea conectada (udev)
  • Cada semana.
  • Cada mes.

Los valores Diariamente, 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 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 Add file para añadir archivos de forma individual, el botón Add folder, para añadir directorios completos o Quitar, para descartar algunas de las ubicaciones que hayamos añadido con anterioridad.

Para este ejemplo, haremos clic sobre el botón Add folder.

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.

Para conseguirlo, hacemos clic sobre el botón Añadir carpeta.

Aparecerá la ventana Excluir carpeta, donde sólo tenemos que localizar la carpeta que queremos descartar y hacer clic sobre el botón Abrir.

En este caso, hemos elegido la carpeta Descargas de la cuenta usuario.

Si quisiéramos descartar todas las carpetas que siguieran un determinado patrón, haríamos clic sobre el botón Añadir y, en la ventana Excluir patrón escribimos una ruta usando caracteres comodín

Cuando estemos listos , hacemos clic sobre el botón Aceptar.

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.

  • 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 més 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 (Poner nombre a la instantánea) de la ventana principal de Back In Time.

En nuestro ejemplo, dejaremos los datos predeterminados.

En la solapa Opciones, encontramos algunas opciones 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.

  • Archivos de respaldo en restauración: 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.

  • 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, …).

  • Continuar si hay errores: Permite tomar una instantánea aunque se detecte algún error.

También en este caso dejaremos los valores predeterminados.

Por último, en la solapa Opciones avanzadas, nos encontramos varias características más:

  • Ejecutar ‘nice’ como tarea de cron: 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 (Estudiaremos las tareas programadas en el próximo capítulo).

  • Ejecutar ‘ionice’ como trabajo de cron: 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.

    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.

  • Ejecutar ‘ionice’ cuando se tome una instantánea de forma manual: Donde podemos indicar si también debe cambiarse la prioridad del acceso al disco cuando tomamos instantáneas de forma manual.

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

Como antes, volveremos a dejar los valores predeterminados.

Cuando estemos listos, hacemos clic sobre el botón Aceptar.

Después de esto, volveremos a la pantalla principal de la aplicación, donde encontraremos fundamentalmente 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 (Settings configuración del sistema), 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 (Take snapshot), 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.

Aspecto de la ventana principal de Back In Time.

Antes de continuar, es importante que hagamos dos observaciones:

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

  2. 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, después de hacer la primera copia.

Si quieres hacer la comprobación de la imagen siguiente necesitaras instalar el comando tree pero, como está en los repositorios, será tan sencillo como ejecutar la siguiente orden:

sudo apt-get install tree

Salida de la orden 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.

En el menú de contexto que aparece, elegimos la opción Restaurar.

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

Una de las primeras carencias que observamos en Back In Time es que no dispone de ningún elemento en la configuración de su interfaz gráfica que le permita ejecutarse en segundo plano, lo que significa que, cuando cerremos la aplicación, dejarán de crearse instantáneas.

Además, cuando estamos configurando un servidor que está destinado a trabajar en modo texto no sirve de mucho tener una buena herramienta de copias de seguridad que necesite el modo gráfico para su funcionamiento.

Por estos motivos, si queremos que Back In Time nos resulte realmente útil, deberemos aprender a manejarlo desde la Consola, aunque nuestro objetivo aquí no es entrar en demasiados detalles…

Lo primero será conocer el comando que nos permitirá ejecutar Back In Time en la Terminal:

backintime -b

Esto nos resuelve el problema en parte, porque una vez configurado, ya podemos ejecutarlo cuando estimemos oportuno sin necesidad de tener cargada la interfaz gráfica. Sin embargo, lo ideal es que no lo hagamos de forma manual, sino que automaticemos su ejecución para no tener que preocuparnos de hacerlo en cada reinicio. Esta parte podemos resolverla programando una tarea para cron, tal y como hicimos en el apartado Ajustes tras la instalación de Ubuntu 14.04 LTS, en este mismo capítulo, para hacer que las actualizaciones del sistema se instalaran de forma automática.

Ahora podemos proceder del mismo modo, pero creando una tarea programada como la siguiente, que hará que el comando backintime se ejecute una vez al día (la opción -b indica que Back In Time debe tomar una instantánea en ese momento):

0 0 * * * /usr/bin/backintime -b

Observaciones finales

Antes de terminar este apartado, me gustaría incluir algunas observaciones / recomendaciones finales:

  • La primera es que, para ampliar el uso que hagamos de Back In Time, deberíamos comenzar por consultar su manual. Para hacerlo, basta con abrir una ventana de Consola (Alt + Ctrl + T) y escribir este comando:

    man backintime
  • 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.