viernes, 6 de abril de 2012

Backups con rdiff-backup


Qué es rdiff-backup?

Es un script escrito en python con el cual podemos realizar backups utilizando SSH, es decir que la transferencia de datos pasa por un canal seguro.

Combina características de un mirror y backups incrementales. Almacena solo los diferenciales de los archivos que se han modificado. Al ser incrementales también optimizan el ancho de banda de la red.

Podemos realizar backups locales y remotos.

Copia exactamente los archivos de origen a destino conservando absolutamente todas las propiedades, como ser permisos, usuarios, grupos, fechas de modificación, links simbólicos, uid, gid, etc.

La desventaja de esta aplicación es que si queremos automatizarlo necesitaremos el password para loguearnos por ssh a la pc remota que queremos backupear.

Para solucionar este inconveniente, podríamos generar un par de keys (public y privada) para realizar el ssh entre servidores para que no nos solicite la contraseña cada vez que ejecutemos el rdiff-backup

Otra de las ventajas es que el rdiff-backup es multiplataforma, puedo realizar backups de archivos independientemente del sistema operativo que tenga instalado en origen y destino.


Instalación en debian:
#apt-get install rdiff-backup
#rdiff-backup -v


Uso para backups locales:

Para realizar backups de una carpeta a otro simplemente especificamos origen y destino de la ruta. Es como realizamos una copia utilizando el comando cp (copy)

Uso:
#rdiff-backup [/ruta/origen/local] [/ruta/destino/local]
Ejemplo:
#rdiff-backup /etc /backup/etc


Uso para backups remotos:

Utilizamos la misma analogía que usamos con cp, pero ahora la analogía la hacemos con el comando scp (secure copy) para copias remotas. Podemos hacer las siguientes 2 combinaciones:

Uso:
#rdiff-backup [usuario]@[ip-remota]::[/ruta/origen/remoto]  [/ruta/destino/local]
ó
#rdiff-backup [/ruta/origen/local]  [usuario]@[ip-remota]::[/ruta/destino/remoto]

Ejemplos:
#rdiff-backup root@192.168.0.101::/etc /backup/etc
ó
#rdiff-backup /etc root@192.168.0.101::/backup/etc


Parámetros:

--force
Autoriza la modificación forzada sobre-escribiendo el path destino.

--remove-older-than
Elimina backups incrementales en el directorio destino que cumplen con un criterio que especifiquemos. Este criterio puede ser fecha, hora, tiempo, después de 4 días, mayor a 2 meses, etc.
Se pueden utilizar una fecha absoluta "2010-12-25", un intervalo de tiempo especificado por:

s (segundos)
m (minutos)
h (horas)
D (dias)
W (semanas)
M (meses)
Y (años)

También podemos concatenar varias como ser 8M7W6D5h4m3s =>  8 Meses, 7 Semanas, 6 días, 5 horas, 4 minutos, 3 segundos

--remote-schema esquema
Especifica un método alternativo de conección a una computadora remota. Este es necesario para darle al rdiff una conexión que no sea por ssh, o si rdiff-backup no se encuentra en el PATH del host remoto.

--verbosity [0-9]

Especifica el nivel de verbosidad ==> 0 es silencioso, 3 por default y 9 es ruidoso. Determina cuanto escribiremos en el archivo de log.

--restore-as-of  equivale a "-r"  => para restaurar backups, lo veremos en el siguiente apartado.


Restaurando:

Hay dos formas de restore:

1) Restaurar un archivo.
2) Restaurar un directorio.


Resumen:

Backupea: #rdiff-backup user@ip::/origen/remoto /destino/local
Lista: #rdiff-backup -l /ruta/del/backup (muestra espacio usado por cada bkp)
Borra viejos: #rdiff-backup --remove-older-than 4W --force /ruta/del/backup (Borra backups viejos a 4 semanas, puede usar "D" para días, la "W" para semaas, la "M" para meses y la "Y" para años)
Restore: #rdiff-backup -r 4D


Fuentes:

http://rdiff-backup.nongnu.org/rdiff-backup.1.html
http://gioblog.info/2009/08/16/backup-con-rdiff-backup-y-crontab/
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=rdiff-backup
http://es.kioskea.net/faq/3504-rdiff-backup-copias-de-seguridad-eficaces-e-incrementales
http://www.tecnicobat.com/tag/rdiff-backup/
http://www.tecnicobat.com/2011/12/27/copias-de-seguridad-en-linux-con-rdiff-backup/
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=rdiff-backup
http://es.kioskea.net/faq/3504-rdiff-backup-copias-de-seguridad-eficaces-e-incrementales
man rdiff-backup (http://rdiff-backup.nongnu.org/rdiff-backup.1.html)
http://es.kioskea.net
http://www.nongnu.org
http://www.howtoforge.com
http://www.adictosaltrabajo.com