Script para realizar backup con tar

por | 12 febrero, 2016

backup

En el mundo de los sistemas de información, es esencial contar con módulos de respaldos que permitan mantener un histórico de nuestros datos, ya sea configuraciones, base de datos, código fuente, entre otros datos importantes que requieran ser preservados.

En este post se describe, como por medio del comando tar y un par de comandos adicionales, se puede realizar un respaldo incremental.

¿ Porque incremental? Resulta que en la gran mayoría de los  casos, los respaldos totales, los datos que contienen, no sufren cambios con regularidad. Por lo que siempre tendremos «respaldos redundantes».

Es por ello que en esta ocasión se presenta un pequeño script para realizar respaldos incrementales, así como el mantenimiento de los históricos de los respaldos y el traslado del respaldo a un servidor remoto.

#!/bin/bash
TIME=`date +%Y%m%d`
FILENAME=NombreArchivo-$TIME.tar.gz
SNAPNAME=NombreArchivo-`date +%m`.snap
SRCDIR=/ruta/a/respaldar
DESDIR=/ruta/donde/guardamos/el/respaldo
EXCLUDE=excluir/carpetas/que/no/deseamos/respaldar/*

cd DESDIR

#Recuperar espacio. Eliminamos los respaldos, con mas de 30 días de antigüedad.

find $DESDIR -type f -iname 'NombreArchivo-*' -mtime +30 -exec rm -vf {} \;

#Realizamos el respaldo con el comando tar,y a su vez se envía la salida del respaldo a un Log

/bin/tar -czf $DESDIR/$FILENAME -g $DESDIR/$SNAPNAME --exclude=$EXCLUDE $SRCDIR $DESDIR/Log_Respaldo.txt

#Guardamos el archivo snap, que es nuestro archivo de control, para manejar los incrementales.

/bin/cp $DESDIR/$SNAPNAME $DESDIR/NombreArchivo-$TIME.snap

#Copiamos el Respaldo en un Equipo Remoto.

/usr/bin/sshpass -p "ClaveEnTextoPlano" scp $DESDIR/NombreArchivo-$TIME.* usuario@IP:/home/soporte/Respaldo/

Es necesario hacer mención que es necesario tener instalado sshpass, para hacer uso del modo no Interactivo.

Imagen | Got Credit (CC BY 2.0)

7 pensamientos en “Script para realizar backup con tar

  1. rlppt

    Me parece muy interesante el script, ahora tengo que ver como pasar la clave con sshpass pero que no sea en texto plano.

    Tambien una minuscula correccion, cuando haces ‘ cd DESDIR ‘ deberia ser ‘ cd $DESDIR ‘.

    Muy buen post.

    Responder
    1. Anger

      Tenemos en lista de pendientes, como recuperar luego el respaldo. Pronto lo subimos.

      Responder
    1. Anger

      Para enviar el respaldo a otro server!, hay esta la linea en el post.

      #Copiamos el Respaldo en un Equipo Remoto.

      /usr/bin/sshpass -p «ClaveEnTextoPlano» scp $DESDIR/NombreArchivo-$TIME.* usuario@IP:/home/soporte/Respaldo/

      Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.