Copias de seguridad de modificados en GNU Linux con tar y find

Hoy vamos a tratar un pequeño tip muy útil para la administración de sistemas, para realizar copias de seguridad de ficheros modificados, en sistemas GNU Linux, utilizando las herramientas que ya hemos tratado en otros momentos en la web, dichos programas son tar y find.

Copias de seguridad de modificados en GNU Linux con tar y find

Vamos a tener en cuenta que llevamos cierto tiempo trabajando con un servidor de ficheros son samba, y nos interesa hacer una script que funcionará una vez al día, preferentemente por la noche. Utilizaremos bash para escribir el guión y la variable IFS para no tener problemas con los espacios. Primero utilizamos cualquier editor de textos, en mi caso será nano.

Al principio declaramos bash y la variable IFS

1
2
3
4
5
6
#!/bin/bash
##Copias de seguridad de modificados
 
#Declaración de variable IFS
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

En el siguiente paso utilizamos find para buscar los ficheros modificados en el último día.

1
find /home/usuario/ -type f -mtime  +0 -mtime -1 > resultado.txt

Lo que hemos hecho en la línea anterior es buscar ficheros dentro del directorio indicado y que se hayan modificado en el último día. Los resultados irán al fichero “resultado.txt” A continuación usamos tar para leer el fichero y generar otro fichero con extensión .tar:

1
2
3
4
5
6
7
tar cvf /home/scripts/backup.tar resultado.txt
 
for i in $(cat resultado.txt); do
        tar rvf /home/scripts/backup.tar "$i"
done
 
IFS=$SAVEIFS

Utilizando la variable “i”  leemos el fichero txt, utilizando for, para guardar cada fichero y comprimirlo en “backup.tar”, por último reseteamos la variable IFS.

Espero que os haya sido de interés.  Gracias a mi compañero de departamento Toni, por la idea. Nos leemos en la próxima.

You may also like...

4 Responses

  1. Alex dice:

    tar no comprime, tar es un archivador no un compresor, es incorrecto decir: comprimirlo en “backup.tar”, Saludos

  2. DBC dice:

    Para comprimir con tar en formato gzip basta con incluir la opción ‘z’

    Otra forma de hacer lo mismo podría ser:

    find /home/usuario -type f -mtime +0 -mtime -1 -exec tar -rvfz /home/scripts/backup.tar.gz {} \;

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR