Disaster Recovery

Quizás si digo backups la gente le suene un poco más, pero, ¿dónde haces los backups?, ¿a otro directorio?, ¿a un disco duro externo?…

La experiencia me dice que todo lo que se hace a mano al final no se hace, así que, el backup tenía que cumplir que:

a) Sea automático (tarea del crontab), lo que descarta DVD’s, discos duros externos…. (alguien tiene que meterlos/pincharlos)

b) No se quede en casa, pues si el disco duro casca, me quedo sin backups.

Así pues, usando el espacio de hosting que tengo con el dominio, ¿por qué no meterlo ahí?. Esto me crea un problema más, ¿qué certeza tengo que nadie se los pudiera descargar y/o analizar?. Para ello, antes de subirlos tengo que cifrarlos, preferiblemente con PGP y una clave de 2048. Sin embargo, es la pescadilla que se muerde la cola, pues ¿cómo hago backup de las llaves PGP?, ¿alguna idea?.

El script que uso para el backup es:

#!/bin/bash

ORDENADOR=nombre
DIRECTORIOS=”DIR1 DIR2… DIRn”  #directorios para hacer backup
BACKUPDIR=DIR_bck #donde guardar el backup

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

FECHA=`date +%G%m%d`

#MySQL Administrator Backup [Backup_General] {USANDO MySQL_Admin}
/usr/bin/mabackup -d $BACKUPDIR -x {PREFIJO} -c {CONEXION A TU MYSQL} {TIPO DE BACKUP}
FICHERO=`ls -tr $BACKUPDIR | tail -n1`
gzip $BACKUPDIR/$FICHERO
gpg -e –default-recipient-self $BACKUPDIR/$FICHERO.gz
rm $BACKUPDIR/$FICHERO.gz

FICHERO=$BACKUPDIR/$ORDENADOR-$FECHA.tar.gz
tar cfz $FICHERO $DIRECTORIOS
gpg -e –default-recipient-self $FICHERO
rm $FICHERO

#Subo los *.gpg al server
echo “$ MACRO_A_USAR” | ftp {SERVIDOR FTP}
logger “Backup Semanal completado y subido al servidor”

Donde para usar una macro de FTP, tienes que tener un fichero en el home adecuado del usuario que ejecutará la tarea, que se llama .netrc con el contenido:

machine {SERVIDOR FTP}
login {USUARIO}
password {PASSWORD}
macdef {MACRO_FTP_A_USAR}
prompt off
lcd {DIRECTORIO DE BACKUPS}
mput *.gpg

Es un poco para andar por casa, pero funciona. Lo único peligroso es el .netrc, pero con unos buenos permisos tendremos todo bajo control.