sábado, 3 de marzo de 2018

Automatizando las copias de seguridad con cronatb en sistemas GNU/Linux

Una copia de seguridad es ese mecanismo que nos va a permitir recuperar nuestros datos en casos de desastres, pérdida de datos por fallo humano o por ataques de software como es el caso del rasonware. Con una copia de seguridad distribuida, podremos recuperarnos bastante rápido de esta hipotética pérdida de información que se plantea. Es por esto que elaborar una buena política de copias de seguridad es fundamental, y por eso en este blog, ya he ido comentando cómo elaborar buenas medidas de copias de seguridad, pasando por el nivel 1, llegando al nivel 2, por lo que hoy toca ir un nivel más y automatizar todo esto.


Hasta ahora, lo que hemos visto, son sistemas de copias de seguridad basados en entornos GNU/Linux y la elaboración de scripts en sh para generar las copias de seguridad totales. Pero antes, tendremos que aclarar una serie de conceptos.

Cuando estamos elaborando una política de copias de seguridad, una de las cosas en las que tenemos que pensar es en dónde almacenar estas copias de seguridad, ya que en caso de almacenarla. Tenemos 3 lugares para almacenar nuestros datos principalmente.

  • DAS. Es el medio tradicional. Podremos almacenar nuestros datos en discos duros externos o unidades extraíbles USB para almacenar nuestra información. Esto trae problemas como que implica un alto TCO, los datos copiados están dispersos y existe una relativa baja tolerancia a fallos.
  • NAS. Esta es una solución que consiste en un dispositivo con una o varias direcciones IP que permite a los usuarios dentro de una misma Red LAN, acceder al sistema de ficheros usando protocolos de red como NIFS, CIFS, SMB o FTP. Esta es una buena solución, ya no sólo porque aporte una opción centralizada a los usuarios los cuales accederán a este sistema de ficheros remoto, sino porque consigue reducir el TCO, aunque como inconveniente trae que si muchos usuarios tratasen de acceder al mismo recurso a la vez, podría provocar cuellos de botella.
  • SAN. Redes de alta velocidad, destinadas al almacenamiento eficiente de grandes volúmenes de datos, por lo que nuestro almacenamiento de grandes volúmenes de copias de seguridad, sería ideal al usar SAN. Este tipo de redes están geográficamente distribuidas. Trae beneficios como un incremento en la velocidad de acceso a los recursos, un menor tiempo de recuperación, escalabilidad y una gestión centralizada, compartida y concurrente con el almacenamiento. También presenta algunas desventajas como es el elevado coste y algunas limitaciones al implementar soluciones de otros fabricantes.
Una vez que ya hemos meditado sobre dónde almacenar la copia-lo ideal es en más de una ubicación- tendremos que destinar el tipo de copia de seguridad a realizar. Tenemos 3 tipos de copias de seguridad:

  • Copia total o normal. El tipo de copia convencional en el que se copiaran todos los archivos y/o directorios que se le pase.
  • Copia incremental. Copia todos los datos que se hayan modificado desde la última copia total. En caso de querer recuperar la copia de seguridad, se necesitará de la copia total y cada copia incremental que se haya realizado desde la última copia total. Esta tarea requerirá de mucho espacio de almacenamiento.
  • Copia diferencial. Copiará todos los datos que se hayan modificado desde la última copia de seguridad, independientemente de cuál sea. En caso de querer recuperar los datos, se tendrá que usar solamente la copia total y la última diferencial. Este tipo de copia requiere de menos espacio de almacenamiento que la copia incremental.
Como ya sabemos dónde almacenar nuestra copia y qué tipo de copia realizar-dependerá en función de las necesidades- tendremos que tener en cuanta con qué frecuencia se realizará cada copia de seguridad y qué queremos copiar.

Por supuesto, lo que queramos copiar dependerá de a qué esté destinado nuestro sistema. Si somos un servidor que almacena usuarios, tendremos que copiar obligatoriamente /etc{ya que contiene los ficheros de configuración de los distintos servicios de nuestro sistema},/home{carpetas de los usuarios}, /var/log{para ver los logs y tratar de conocer la acción que haya podido propiciar el fallo. También sería muy útil copiar el /root para los casos de pérdida total de datos de un sistema. Sabiendo todo esto, ya podemos entrar en acción con la automatización de esta tarea.


Para este caso os dejo unos ejemplos donde he copiado /etc, /home/manu,/root y /var/log. Esta tarea la automatizo utilizando crontab. Si no habéis usado mucho crontab, os explico brevemente sus opciones.

La primera opción que nos encontramos especificamos los minutos, en mi caso, en el inuto 30 voy a hacer algo. La segunda opción es la hora, es decir, ya sabemos que algo voy a hacer a las 22:30. La tercera opción es el día de mes[días del 1 al 31], en caso de especificar *, diremos que todos los días a las 22:30, hacer algo. La cuarta opción es el mes[del 1 al 12], aquí ocurre igual si especificamos *. La quinta opción es el día de la semana {de 0 a 7, vamos, de domingo a domingo}. La sexta opción es en la que tendremos que especificar con qué usuarios queremos realizar la acción y finalmente el comando.

Solamente tendremos que esperar a las 22:30 de cada día para que se realicen todas las copias de seguridad que ahí he especificado. Obviamente se pueden hacer más cosas como pasarlo por ssh a otro equipo y posteriormente eliminar estas copias de, al menos, ese directorio en el que lo tendríamos, en este caso el Escritorio. Pero esto ya es ir modificando el fichero a nuestro gusto y necesidades.

Como veis, es una solución muy sencilla de aplicar en entornos GNU/Linux. En mi caso he especificado copias totales, ya que la cantidad de información a copiar suele ser pequeña. Solución sencilla a un gran problema.

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...