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)
@anger 2×1 hoy, a este paso me retiro 🙂
Muy interesante el script
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.
y como lo desempaqueto luego???
Tenemos en lista de pendientes, como recuperar luego el respaldo. Pronto lo subimos.
Lucho, la pregunta es para dejar los mis datos en los directorios verdad ? ya que para desempaquetar usas tar -xvf
Tambien quede con esa duda. Saludos
No llego el post, falto agregar en la ultima linea un scp a otro server de respaldos
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/