Backup sencillo pero eficiente

Despues de tener varios sustos (bueno mas que sustos, serían OSTIAS puras y duras y bien dadas xD) con perdidas de archivos, uno se vuelve muy paranoico con la seguridad. Voy a ir poniendo varias medidas que uso como mi propio mini-SGSI (Sistema gestor de seguridad de la información, loool, ahora se le dice así a todo el conjunto, mola mas xD), hoy toca algo clave, backups.
Existe el riesgo de que un usuario malintencionado (como yo mismo o por una falla en la seguridad) borre nuestros queridos ficheros, o que se produzca un fallo físico en el dispositivo, crear backups es algo totalmente necesario. Para la realización de la tarea me plantee varios puntos:

  • Qué consideraba como totalmente necesario (el resultado de esto serán los archivos a incluir en nuestros backups)
  • Debería guardarlo en una carpeta que se encuentre en un disco duro distinto al de origen (para la protección por daño físico)
  • No quería ocupar mucho espacio, pero también quería tener los backups de los últimos ‘x’ días (esto se soluciona con enlaces duros, es decir, necesitamos un sistema de ficheros que los soporte, ext2 o superior por ejemplo).

#!/bin/bash

DIR_RAIZ=/home/blaxter/Dir_Importante

SNAPSHOT_DIR=/mnt/otroDispositivo/backs/Dir_Importante
LOG_DIR=/var/log/backupDir_Importante

HOY=`/bin/date +%A`
AYER=`/bin/date –date=’1 day ago’ +%A`
HORA=$(/bin/date +%kh)

if [ ! -d ${LOG_DIR} ]; then
/bin/mkdir ${LOG_DIR}
fi

echo “$(/bin/date): Inicio de la sincronizacion” > “${LOG_DIR}/${HOY}”

/bin/rm -rf $SNAPSHOT_DIR/$HOY
/usr/bin/rsync –delete \
-av \
–numeric-ids \
–link-dest=../$AYER \
“$DIR_RAIZ”/ “$SNAPSHOT_DIR”/$HOY/ \
>> “$LOG_DIR”/resumen_”$HOY”

echo “$(/bin/date): Sincronizacion terminada” >> “${LOG_DIR}/${HOY}”

La gracia del asunto, está en poner este script en el cron (en debian y derivados /etc/cron.daily o editando manualmente las tareas del cron) para que se ejecute diariamente, así tendremos en nuestra carpeta de backups carpetas “Lunes”, “martes,…, “Domingo”; con los últimos siete backups, pero solo habrá una copia exacta de los datos en una de ellas y en el resto habrá solo las modificaciones respecto al día anterior (los no modificados serán enlaces duros, es decir, no ocuparan espacio adicional :)).

Lo puedes descargar de aquí. Para cualquier duda, comentarios ;).

Comments are closed.

Post Navigation