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. #!/bin/bash
  2. ##Copias de seguridad de modificados
  3.  
  4. #Declaración de variable IFS
  5. SAVEIFS=$IFS
  6. 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. tar cvf /home/scripts/backup.tar resultado.txt
  2.  
  3. for i in $(cat resultado.txt); do
  4.         tar rvf /home/scripts/backup.tar "$i"
  5. done
  6.  
  7. 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.