Script para backups diferenciales

Imagen de inkun
0 puntos

Hola, necesito hacer un script para crear backups diferenciales cada dia. Esto es, que se copie en un archivo comprimido únicamente lo que se modifico las últimas 24 horas.

El script lo que hace es mirar si en la carpeta /home/xavi/Escritorio se ha modificado algún archivo las ultimas 24h, si es así copia la ruta al archivo ubicado en /tmp/backuplista.txt. Cuando finaliza si en el archivo hay alguna cosa entonces quiero que haga un backup de todo lo que hay en la lista, es decir que copie los archivos en un .tar.

El problema es que quiero que quede ordenado. Es decir, que si se ha modificado algo, por ejemplo
/home/xavi/Escritorio/uni/apuntes.txt
/home/xavi/Escritorio/cosas/cosas.txt

Me gustaria que en el tar no solamente se copiara los archivos apuntes.txt y cosas.txt si no que se copiase la ruta completa, es decir que dentro del tar se copiasen las carpetas superiores, que quedase algo que no solamente estuvisen los archivos sino que dentro del rar se encontrase:
/home/xavi/Escritorio/uni/apuntes.txt
/home/xavi/Escritorio/cosas/cosas.txt

Esta ultima parte aunque he intentado mirar en el manual de tar, no he conseguido encontrar como hacerlo. Necesito algo de ayuda para completarlo

El script que tengo hecho hasta ahora es el siguiente:

#!/bin/bash
#
# Backup diferencial
#
DATA="/home/xavi/Escritorio"
LIST="/tmp/backuplista.txt"
#
date=$(date +'%Y-%m-%d %H:%M:%S')
read Y M D h m s <<< ${date//[-: ]/ }

mkdir /mnt/Disco_Xavi/tmp/
cd /mnt/Disco_Xavi/tmp/

#
find $DATA -depth -type f \( -ctime -1 -o -mtime -1 \) -print > $LIST
if [ ! -s $LIST ]; then
for line in $LIST;
do
#Aqui se deberia crear el tar con cada uno de los archivos que hay en $LIST
#tar -rf /mnt/Disco_Xavi/tmp/BackupDiferencial_$D_$M_$Y.tar.gz $line
done
chmod 644 /mnt/Disco_Xavi/tmp/BackupDiferencial_$D_$M_$Y.tar.gz
#rm -f $LIST
fi

Alguien me puede ayudar?

Imagen de Goyo
+1
0
-1

Las rutas que ses guardan en el archivo son las mismas que se proporcionas como argumentos de tar, no tiene más misterio. Si le pasas rutas relativas guarda rutas relativas, si le pasas rutas absolutas guardará rutas absolutas.

De todos modos creo que sería más eficiente usar rsync.

+1
0
-1