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! 😉