Sencillos backups del sistema con TAR

por | octubre 23, 2017

Existen multitud de herramientas con las que hacer backup de nuestro sistema. Desde sencillas para entornos de escritorio como Déjà Dup a utilidades para entornos empresariales y de producción como Bacula, Veeam Backup o Acronis Backup and Recovery.

En función del entorno en el que nos encontremos utilizaremos herramientas empresariales o soluciones más locales y hechas a medida. Conviene tener siempre en cuenta el clásico tar para realizar backups de nuestro sistema, tanto si es nuestra única solución como si queremos utilizarlo de forma complementaria junto con otras utilidades.

La opción -T de tar nos permite incluir un fichero en el que especificar una lista de directorios de los que hacer backup. Pongamos por ejemplo que tengo un fichero llamado lista-backup.txt en el que incluyo dicha lista con los directorios del sistema que quiero guardar. La inclusión es recursiva, por lo que se tienen en cuenta los subdirectorios por debajo de los que especificamos:

[root@jota-pc ~]# cat lista-backup.txt
/root
/home/jota/Documents
/home/jota/Pictures
/home/jota/scripts
/etc
/var/log
/var/spool
/var/mail 

Por tanto estoy interesado en hacer backup del directorio /etc donde encontramos gran parte de la configuración del software instalado. En este sentido, también podríamos incluir /usr/share si lo deseáramos aunque ocupa bastante espacio (en mi caso 4GB). El resto de directorios son personales (no quiero mi /home completo, sino simplemente algunos datos), logs, spool (donde tenemos por ejemplo los crontabs de los usuarios) y mail (correos locales). Cada uno puede incluir lo que considere necesario.

Ahora podríamos lanzar tar de la siguiente manera guardando en backup-sistema.tar.gz todo aquello que especificamos en la lista:

tar zPpcf backup-sistema.tar.gz -T lista-backup.txt

Las opciones utilizadas son:

  • z para realizar compresión con gzip.
  • P para preservar el path absoluto del recurso guardado.
  • p para mantener los permisos.
  • c que indica que estamos creando un empaquetado tar.
  • f que precede al nombre del fichero (en este caso backup-sistema.tar.gz) donde vamos a guardar el backup.

De esta forma tan sencilla ya tenemos cierto respaldo de nuestro sistema. ¿Qué hay del software instalado? Si nos interesa tener una lista de todos los paquetes que tenemos instalados en nuestro sistema como inventario podemos utilizar apt-clone en caso de una distro Debian o derivada. Siempre podremos no obstante realizar nuestras propias listas de software con dpkg o rpm.

Más tarde para restaurar bastaría con desempaquetar backup-sistema.tar.gz. Podemos realizarlo de todo el paquete tar o bien de directorios específicos:

# Todo el paquete
tar zxf backup-sistema.tar.gz

# Sólo el directorio /etc
tar zxf backup-sistema.tar.gz etc

Finalmente, para operar con tar también hay una guía práctica publicada hace tiempo en el blog.