Gestor de copias de seguridad incrementales en Linux

Extracto

@pedroruizhidalg― Ya escribimos sobre las copias de seguridad en Linux, otra estupenda opción es rsync. Este comando (https://rsync.samba.org/) de los creadores de samba, tiene, en principio, está pensado para la sincronía remota de directorios. No obstante, su funcionalidad es muy amplia y puede ser dedicado a otros usos.

Descripción

Como primera tarea, tenemos que hacer lo posible para que nuestro sistema pueda ejecutar scripts como si de comandos se tratara. Tras esto vemos la sintaxis del bash que vamos a ejecutar para nuestras copias de seguridad incrementales.

$ cat .bin/backup

#!/bin/bash
rsync -ab --quiet --backup-dir=~/Archivos/BACKUP/ --delete --exclude=~/Archivos/BACKUP ~/ ~/Archivos/BACKUP

Vayamos por partes.

  1. La primera linea informa a linux que el scritp debe ser ejecutado con bash.
  2. La segunda es el comando rsync, que pasamos a desmenuzar.

Con la opción “a” informamos que es en modo archivo. Con “b” que estamos realizando un backup. Backup-dir informa del lugar donde vamos a realizar el backup. Delete que cualquier archivo borrado en nuestros directorios debe ser eliminado también de la copia de seguridad. Exlude indica que no incluya dicho directorio en la copia de seguridad, ya que eso crearía un bucle. Por último, ~/ indica que creo un backup de todo el home. Y lo siguiente es el destino.

Rsync soluciona un problema muy común para los administradores de redes. Aseguro que el siguiente diálogo se ha producido, por muy kafkiano que parezca:

―¿Hola? Sí, mira es que se me ha borrado un archivo, para ver si me lo puedes recuperar.
―¿Cómo se llamaba el archivo?
―No lo sé.
―¿En qué carpeta estaba?
―No me acuerdo porque la tengo que ver escrita, pero como no esta…
―¿Conoces la fecha de creación o la de modificación?
―¿Pero tú qué te crees que yo soy un informático?
―No, no me creo eso. ¿Con qué programa lo abrías?
―Con el doble click del ratón, ¡vaya pregunta más tonta me haces!

Con rsync, tenemos la oportunidad de copiar los archivos sin comprimir, y el árbol de copia de seguridad se nos queda tal cual es en el original, cosa que te puede permitir examinar todo el contenido sin necesidad descomprimir ni de maniobrar con un fichero de pongamos 500 gigas….

Ejecución

Para programar la copias de seguridad tecleamos

$ crontab -u tuusuario -i -e

Esto nos lleva a nuestro editor de la linea de comandos y programamos así. En mi caso para las 15 horas, quince minutos de todos los días.

#minuto hora diadelmes mes diadelasemana (0 es domingo)
15 15 * * * /home/pedro/.bin/backup

Lo que ejecutará el script arriba indicado que habremos guardado con el nombre de backup cada (que esté encendido el ordenador, claro :-)) a las quince horas quince minutos.

Epílogo

Para comprobar el funcionamiento del script:

ps -aux |grep backup

Espero y deseo que este artículo haya sido de utilidad. Es muy importante para la continuación de trabajos de calidad recibir algún tipo de feedback por parte de los lectores: es decir, responde con comentarios, evalúa la calidad del trabajo con el sistema de estrellas, comparte con tus redes sociales, da me gusta, marca el blog como favorito. Son pequeños gestos que ayudan a mantener el trabajo de creación.

Clave pública @pedroruizhidalg.pub.key

exlibri, sapere aude
exlibri del autor
#aboutpedroruizhidalgo
[polldaddy poll=9120832]
♻ miotroblogsite ahorra papel

Copias de seguridad en Linux

Extracto

@pedroruizhidalg― Qué duda cabe, las copias de seguridad son un mal necesario en los sistemas de información tanto en los productivos, como de desarrollo e igualmente en los comerciales. El valor de una copia de seguridad es directamente proporcional a la valoración (en euros) de nuestros datos. Los informáticos que me lean entienden perfectamente qué estoy diciendo…

Descripción

Generalmente el comando que se usa en Linux para hacer copias de seguridad es tar. Si bien este comando es estupendo para crear almacenes de ficheros, es decir, tener agrupados archivos que por cualquier motivación queramos mantener agrupados (comprimidos o no), este comando deja mucho que desear en cuanto a tiempos de respuesta para copias de seguridad en sistemas de grandes volúmenes de datos. El tiempo es oro. Esto nos lleva al comando cpio.

Ejecución

La forma general de proporcionarle archivos mediante una tubería (pipe line). Lo que nos permite proporcionarle gran cantidad de archivos de una forma muy cómoda. Quiero decir, muchos archivos con muy pocas especificaciones.

Una forma de hacerlo sería suministrarle contenidos desde el comando ls.

Es algo así.

$ ls * | cpio parametros >directorio.cpio

En un caso práctico.

$ ls -w 1 -T 1 * | cpio -ocv > /home/bck.cpio

Es decir, listamos sólo los nombres de los archivos de un directorio y esto se lo “entregamos” al comando cpio que lo empaqueta en el fichero que hemos llamado bck.cpio y lo situaremos en nuesto home. La opción w 1 limita el resultado a una sola columna. La opción T 1 establece los topes de tabulación a 1 en lugar de 8 como es por defecto.

Una forma que me gusta más, de hecho es la que uso en mis sistemas es:

$ find ~/ -follow | cpio -oa | gzip -9 > ejemplo.cpio.gz

O sea, busco toda la información de mi home, esto lo “entrego” al comando cpio, que le “entrega” su proceso a gzip, para que la salida esté comprimida.

Epílogo

Una buena idea es hacer incluir esto en un script bash, para poder lanzarlo desde procesos crontab a una hora determinada. Yo lo hago así.

#!/bin/bash
_hoy=$(date +"%Y_%m_%d")
find ~/ -follow | cpio -oa | gzip -9 > "/media/Archivos/backups/$_hoy.cpio.gz"
~ $

Además con este script conseguimos que el archivo lleve como nombre la fecha en que se ha realizado.

Espero y deseo que este artículo haya sido de utilidad. Es muy importante para la continuación de trabajos de calidad recibir algún tipo de feedback por parte de los lectores: es decir, responde con comentarios, evalúa la calidad del trabajo con el sistema de estrellas, comparte con tus redes sociales, da me gusta, marca el blog como favorito. Son pequeños gestos que ayudan a mantener el trabajo de creación.

Clave pública @pedroruizhidalg.pub.key

exlibri, sapere aude
exlibri del autor
#aboutpedroruizhidalgo
[polldaddy poll=9120832]
♻ miotroblogsite ahorra papel