Respaldo incremental usando rsync

Respaldo incremental usando rsync

Cuando deseamos respaldar una aplicación o sitio web que es muy pesado usamos respaldos incrementales y no diferenciales para ahorrar espacio de almacenamiento.

El siguiente es un script que muestra como hacer un respaldo incremental con una política de retención de 30 días usando rsync.

#!/bin/sh

#La fecha de hoy
TODAY=`date '+%d-%m-%Y'`

#La fecha de ayer
DAY1=`date '+%d-%m-%Y' -d "1 day ago"`

#La fecha hace 30 dias
DAY30=`date '+%d-%m-%Y' -d "30 days ago"`

#Directorio de origen
SRC="/var/www/htdocs/mi_sitio_web"

#Directorio de destino
TRG="/backup/mi_sitio_web/$TODAY"

#Directorio de enlace
LNK="/backup/mi_sitio_web/$DAY1"

#Eliminar el respaldo de hace 30 dias en caso de existir
if [[ -d /backup/mi_sitio_web/$DAY30 ]]; then
	rm -rf /backup/mi_sitio_web/$DAY30
fi

#Ejecutar respaldo incremental
rsync -avh --delete --link-dest=$LNK $SRC $TRG

*Nota: Este script asume que ya tienes un respaldo completo en el directorio /backup/mi_sitio_web/

Explicación:

La parte fundamental en este script es la opción --link-dest. El uso común de rsync es de las siguientes 2 formas:

rsync -a /alfa /beta

Este comando copia el directorio alfa y todo su contenido dentro del directorio beta

rsync -a  /alfa/ /beta

Este comando copia el contenido del directorio alfa dentro del directorio beta

rsync compara el contenido del directorio de origen contra el directorio de destino y copia las diferencias haciendo una sincronización del contenido pero, cuando usamos la opción --link-dest le decimos a rsync que compare contra un directorio diferente para hacer la sincronización. Ejemplo

rsync -a --link-dest=/gama /alfa /beta

En este ejemplo le estamos diciendo a rsync que compare a alfa contra gama y sincronice en “beta” haciendo un enlace entre ellos. Usando esto a nuestro favor es como logramos hacer respaldos incrementales utilizando rsync.

Deja tus comentarios y/o sugerencias


Share Tweet Send
0 Comentarios
Cargando...
You've successfully subscribed to Douglas Barahona
Great! Next, complete checkout for full access to Douglas Barahona
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.