Crear copias de seguridad de manera sencilla con tar

image-backupPerder toda la información de nuestro sistema e intentar recuperarla puede ser un auténtico quebradero de cabeza. Los sistemas basados en UNIX como Linux disponen de un amplio abanico de comandos para facilitarnos las cosas.

Uno de ellos es tar (Tape ARchiver), una herramienta de fácil manejo que encontramos en todas las versiones de Linux y UNIX, que nos permitirá copiar ficheros y directorios a un sólo fichero, que podrá ser comprimido.

Los parámetros más importantes son los siguientes:

  • c, crea un nuevo archivo o contenedor.
  • d, calcula las diferentes entre el archivo y el sistema de archivos.
  • x, extrae ficheros de un archivo o contenedor.
  • t, testeo los archivos almacenados en el fichero.
  • v, modo verbose o detallado.
  • f, especifica el nombre del contenedor.
  • z, comprime o descomprime los ficheros.

Es muy importante que las copias de seguridad las guardemos fuera de nuestra máquina, es decir, en otra máquina, en la nube o en un disco duro externo. Para éste artículo he guardado las copias de seguridad en un sistema externo con Windows y NTFS, podéis ver como montarlo con fstab en éste artículo.

El sistema operativo que he utilizado es donde tengo instalado NAGIOS, así que aprovecharemos para realizar una copia de seguridad de los ficheros de configuración y de log. Si queréis ver los artículos relacionados con éste sistema de monitorización los podéis consultar:

Tantos los archivos de configuración como los de log están ubicados en /usr/local/nagios, el directorio de backup lo he montado en /media/BACKUP, por lo tanto el comando será:

  1. tar cvfz /media/BACKUP/copia_servernagios.tgz /usr/local/nagios

Al ejecutar el comando veremos un resulta como el siguiente:

captura-tar-1Cuando acabe ya tendremos el archivo comprimido resultante:

captura-tar-2Se puede observar que el archivo ocupa poco más de 5 MB, ya que está comprimido.

Para descomprimirlo sólo tenemos que substituir el parámetro c por x, y añádir z, ya que lo hemos comprimido.

Programando las copias

Hacerlo de forma manual puede ser algo farragoso, además que se nos puede olvidar. Así que la mejor manera es programarlo y así nos olvidamos.  Crearemos un script en bash, que lo dejaremos programado con crontab.

Al archivo lo he llamado: /root/backup_diario.sh

El script puede ser parecido al que he hecho yo, pero cada uno como más le guste:

  1. #!/bin/bash
  2.  
  3. _fecha=$(date +"%m_%d_%Y")
  4. _destino="/media/BACKUP/copianagios("$_fecha").tgz"
  5.  
  6. tar cfz $_destino /usr/local/nagios/

Ahora usamos el servicio crontab. Ejecutamos el comando crontab -e, y añadimos:

  1. PATH=/bin
  2. 0 0 * * * /root/backup_diario.sh

De esta manera se ejecutará todos los días a las 0 horas.

Espero que el artículo haya sido de vuestro interés.

¡Comentad malditos! 😉

 

14 Respuestas

  1. Sam Duarte dice:

    Gracias por el artículo, me fue muy útil.
    Como quedaría el script, si necesito copia de varias configuraciones?.

  2. David dice:

    Hola!
    Simplemente tienes que añadir las ubicaciones a continuación:

    tar cfz $_destino /usr/local/nagios/ /home/lo-que-sea /var/log/lo-que-sea /etc……

  3. Martin dice:

    Excelente aporte me es muy util tu pagina!!! saludos!!

  4. roger dice:

    si quisiera que al añadir un nuevo backup se borre el anterior y actualice al nuevo..como lo haria?? gracias excelente post

  5. alejo dice:

    Hola, muchas gracias por tu aporte. Tengo una pregunta, como podría hacer para que las copias de seguridad sean cada 2 minutos de un directorio, pero ademas que el script haga todo lo referente a la configuracion en el crontab. Osea, correr el script y que el mismo configure ese archivo para que se ejecute cada 2 minutos

  6. Fvelazquez dice:

    Gracias por tu post, me sirvio para realizar mis respaldos.

  7. Jorge Augusto dice:

    muchas gracias muy util la varible fecha que es lo que hace exactamente es para decir en que fecha se hizo el backup? o es para el crontab

  8. Brenda dice:

    hola buenas noches tengo un problema y no he podido con eso, debo crear una copia de seguridad que tenga como parametros los siguientes:
    Ruta del directorio a donde se quiere llevar la información.

    • Recibe n parámetros. Extensiones
    de archivos, por ejemplo:
    docx,doc, txt, xls, xlsx, odt,java,
    c, cpp, sh.

    y que ada vez que se ejecute el comando se debe crear dentro
    del directorio recibido como parámetro otro directorio, el
    cual tendrá un nombre con la siguiente estructura: nombre
    de usuario + fecha + hora. Dentro de este nuevo
    directorio, se debe almacenar la información de los
    documentos que el usuario solicito según las extensiones
    indicadas.

  9. pepe dice:

    ¿Si quiero que la copia se haga todos los dias a las 1:00 de la madrugada como sería?

  1. 19 febrero, 2016

    […] utilizando las herramientas que ya hemos tratado en otros momentos en la web, dichos programas son tar y […]

  2. 8 julio, 2016

    […] utilizando las herramientas que ya hemos tratado en otros momentos en la web, dichos programas son tar y […]

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.