Copia de seguridad en Linux. Duplicity

(english version)

Duplicty

Es otra herramienta de copia de seguridad, aunque no tan versátil como Bacula. Está escrita en python que es un lenguaje de programación pseudo interpretado.

Su instalación es bien sencilla, ya que se puede instalar con el gestor de paquetes de cualquier distribución Linux.

Entre sus características podemos decir que :

  • Permite copiar archivos dentro del mismo servidor o bien enviarlos a otro mediante diversos protocolos como ssh, rsync, ftp, imap, s3, etc. Por ejmplo se puee copiar un directorio vía scp de esta forma:

duplicity /home/dir scp://usuario:contraseña@conekia.es/dir

Aunque no es muy seguro poner la contraseña en la URL de conexión, porque cualquiera con permisos para listar procesos podría verla. Se puede ejecutar de esta forma más segura, aunque pedirá la contraseña:

duplicity /home/dir scp://usuario@conekia.es/dir

  • Permite codificar los archivos en el servidor destino. Esto lo hace por defecto. Si se especifica la opción –no-encryption, comprime la información del backup en archivos o volúmenes gzip,cuyo tamaño se puede especificar.

duplicity --no-encrytion /home/dir scp://usuario@conekia.es/dir

  • También permite crear backup completos o incrementales de la información contenida en el backup.

Siguiendo con el ejemplo anterior, un backup completo se haría ejecutando:

duplicity full /home/dir scp://usuario@conekia.es/dir

  • Permite hacer restauraciones de archivos de una fecha específica.

duplicity -t 3D scp://usuario@conekia.es/dir /dir_local_restauracion

Este comando restauraría todo el directorio del servidor remoto en el que hicimos previamente la copia de seguridad, pero de hace 3 días.

  • Se puede seleccionar el borrado de backups para dejar espacio en disco a nuevos backups

duplicity --no-encryption remove-all-but-n-full 1 --force scp://usuario@conekia.es/dir

Esto borraría la copia de seguridad de tipo full y todas las incrementales que dependan de ella anteriores a la última copia de tipo full. Es decir, remove-all-but-n-full 1 borraría todas copias completas anteriores a la copia completa más reciente (última). Si el valor fuera 2, borraría todas copias completas anteriores a la penúltima copia, y así sucesivamente.

Pero lo que le falta, y bajo mi punto de vista es una gran carencia, es que no se puede borrar la copia  incremental de una fecha específica. Es decir, que si necesitamos borrar una copia de seguridad para liberar espacio en disco para así poder añadir nuevas copias (más recientes) solo podemos borrar una  copia de seguridad tipo full y todas las incrementales que dependan de ella (algo exagerado).

Además, por sí mismo tampoco permite generar un histórico de copias de seguridad como hace Bacula, y poder tener copias de x días anteriores. Es necesario crear un script que genere copias tipo full y tipo incremental y que las borre según nuestras necesidades (cada semana, cada mes, etc).

En cuanto a la recuperación de archivos es sencilla y se puede especificar el archivo o grupo de ellos que se desea restaurar.

En Conekia hemos utilizado esta herramienta en alguno que otro caso, y nos hemos dado cuenta que es una herramienta válida para pequeñas copias que no mueven un volumen grande de datos, aunque su aprendizaje es rápido y su instalación sumamente fácil.

De momento esto es todo. Próximamente analizaremos los pros y contras de otras herramientas de backup para Linux.

Herramientas de copia de seguridad en Linux – Bacula

2 pensamientos en “Copia de seguridad en Linux. Duplicity

    • Hola Ángel.

      Para hacer una copia incremental basta con ejecutar el comando de esta manera:
      duplicity incremental /home/dir scp://usuario@conekia.es/dir

      La primera vez que se ejecute hará un copia tipo completa(full) y las siguientes veces hará la copia incremental.
      La única pega es que no se puede establecer con el propio comando un tiempo retención de las copias de manera que se ahorre espacio en disco. Para ello hay que crear un script que controle el tiempo que debe guardarse la copia y borrarla. Podría ser algo así:

      date=`date +%d`
      if [ $date = 30 ]
      then
      duplicity remove-all-but-n-full 1 –force scp://usuario@conekia.es/dir/
      duplicity cleanup –force scp://usuario@conekia.es/dir/
      duplicity full /local_dir scp://usuario@conekia.es/dir/
      else
      duplicity /local_dir scp://usuario@conekia.es/dir/
      fi

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *