Вы находитесь на странице: 1из 7

Backup automtico seguro entre servidores Debian

Pgina 1 de 7

Backup automtico seguro entre servidores Debian


En la Categora Debian, Linux, Sec-Info, Servidor Debian, Servidor Ubuntu 2010, Ubuntu el dia 10 mayo 2010

ltimamente si hay algo que escasea en mi vida es el tiempo, el tema sobre el que habla este articulo no es otro que el de gastar un poco de tiempo para ahorrarlo en un futuro no muy lejano. El hacer copias de seguridad de los datos importantes peridicamente es algo que hace tiempo necesitaba automatizar ya que siempre suelo hacerlo a mano. Si hay algo que tenemos que tener en cuenta cuando tenemos un Servidor Web es que todo lo que hemos instalado desde el sistema operativo como las Webs, Bases de datos y dems cosas importantes estn grabadas dentro de un disco duro que puede tarde o temprano fallar. Las copias de seguridad es algo que es necesario hacerlas ya que si un da el disco duro de nuestro servidor quiebra puede darnos mas de un dolor de cabeza si no las tenemos. En este tutorial os voy a contar la forma de hacerlo olvidndonos de todo para que tan solo tengamos que preocuparnos de restablecer nuestras copias de seguridad automticas una vez tengamos problemas, mientras tanto podremos olvidarnos y sentirnos seguros . En mi caso y para ponernos en situacin os cuento que dispongo de dos servidores web conectados a Internet las 24 h. Uno es remoto y el otro esta en mi casa. Los dos disponen del puerto 22 abierto y aceptan conexiones seguras por SSH

Contando con esto y para practicar con este tutorial necesitamos tener dos maquinas conectadas las 24 h a Internet ya que vamos a automatizar todo el proceso de backup incluyendo los directorios donde se alojan nuestras webs, sus bases de datos MySQL y las enviaremos desde el servidor remoto hacia nuestro servidor en casa. Esto lo aremos de forma programada por lo que podremos

http://www.forat.info/2010/05/10/backup-automatico-seguro-entre-servidores-debian/

06/09/2011

Backup automtico seguro entre servidores Debian

Pgina 2 de 7

decirle a nuestro servidor remoto que cumpla con sus tareas y despus nos las envi a nuestro servidor en casa de una forma totalmente automtica . El comprimir lo que necesitemos del servidor remoto y enviarlo remotamente no es un problema gracias a la transferencia segura por SCP. Esto podemos hacerlo pero por defecto solo podemos hacerlo a mano ya que cuando vas a transferir el fichero comprimido con todo tu contenido de un servidor a otro te pregunta tu nombre de usuario y password. Para comenzar vamos a quitar esta pega creando una llave en el servidor remoto y copiandola en el servidor en casa. De esta forma las dos maquinas podrn entenderse entre ellas sin necesidad de que el ser humano intervenga introduciendo el nombre de usuario y password. Esta tcnica puede ser muy cmoda para automatizar tareas entre varios ordenadores pero hay que contar con el factor ( Seguridad ). Si nuestros ordenadores pueden comunicarse sin mas es gracias a que los dos usan la misma llave. Esta llave puede ser peligrosa si cae en manos de terceros ya que tan solo con instalrnosla podemos tener acceso incondicional al servidor. Remotamente no es que sea del todo fcil capturarla pero si alguien tiene acceso a nuestra maquina de manera local podr copiarla sin mas. Esto es mejor saberlo antes de poner en practica esta tcnica de conexin segura sin clave para SSH.

Requisitos para un correcto funcionamiento


OpenSSH instalado en los dos servidores El puerto 22 abierto en nuestro router apuntando hacia la IP nuestro servidor ( casi siempre solo es necesario en nuestro servidor casero ) GNU/Linux Debian en los dos servidores, aunque esto es perfectamente aplicable para Ubuntu ya que tan solo cambia el comando sudo antepuesto.

Conexin segura por SSH sin clave


Esta tcnica puede ser muy cmoda para automatizar tareas entre varios ordenadores pero hay que contar con el factor ( Seguridad ). Si nuestros ordenadores pueden comunicarse sin mas es gracias a que los dos usan la misma llave. Esta llave puede ser peligrosa si cae en manos de terceros ya que tan solo con instalrnosla podemos tener acceso incondicional al servidor. Remotamente no es que sea del todo fcil capturarla pero si alguien tiene acceso a nuestra maquina de manera local podr copiarla sin mas. Esto es mejor saberlo antes de poner en practica esta tcnica de conexin segura sin clave para SSH. Una vez sabido todo esto vamos a comenzar por acceder a la Terminal de nuestro servidor remoto va SSH que ser el servidor del cual necesitamos hacer las copias de seguridad

ssh usuario@servidorremoto Una vez dentro vamos a crear la llave que luego enviaremos a nuestro servidor casero as

ssh-keygen -t rsa Una vez tengamos la llave veremos un nuevo fichero llamado id_rsa.pub. Ahora necesitamos copiar esta llave en el servidor casero donde alojaremos las copias de seguridad. Ahora accederemos a el va sftp y subiremos la llave tecleando lo siguiente

sftp usuario@servidorencasa Introducimos el password y copiamos la llave

http://www.forat.info/2010/05/10/backup-automatico-seguro-entre-servidores-debian/

06/09/2011

Backup automtico seguro entre servidores Debian

Pgina 3 de 7

put id_rsa.pub Ahora necesitamos saber si este ordenador tiene el directorio .ssh en la cuenta del usuario que acabamos de entrar. Miraremos a ver si esta con

ls -la As veremos todos los directorios, visibles y ocultos con sus permisos y dems. Si tenemos el directorio .ssh bien y si no lo tenis que crear con .

mkdir .ssh Ahora movemos la llave renombrndola con

mv id_rsa.pub .ssh/authorized_keys Ahora ya tenemos esta nueva llave tanto en el servidor remoto donde aremos las copias de seguridad como en el servidor casero donde las alojaremos. Ya podemos salir del sftp con el comando exit y si hacemos la prueba ya podremos conectarnos entre si sin password. Esto es valido para dos ordenadores que se conocen y conseguimos con ello poder automatizar tareas con ssh, sftp, scp y dems sin que nos pida un password de conexin de una manera segura. Hacemos la prueba y nos quedamos conectados al servidor remoto as

ssh usuario@servidorremoto Ahora que ya hemos eliminado esta barrera de nuestro paso vamos aremos las copias de seguridad de lo que necesitemos. En mi caso y como en el caso de casi todos los que habis montando cualquiera de mis proyectos de Servidores Web tengo varios Blogs con WordPress. Dicho CMS se basa en varias partes. El mismo software de wordpress, plugins, themes y lo que incluyamos nosotros mismos como por ejemplo imgenes en el directorio /upload. Por otro lado nos encontramos con sus respectivas bases de datos MySQL las cuales contienen prcticamente todos los textos que podemos ver en cada Blog. Con lo cual necesitamos copiar un directorio en cuestin y hacer una copia de seguridad de la base de datos de cada Blog que tengamos. Dudo bastante que este servidor remoto solo lo usis para alojar un Blog al menos ese no es mi caso. En el servidor remoto tengo alojados 10 Blogs, as que ar una copia masiva tanto del directorio donde tengo todos los Blogs como de todas las bases de datos a la vez. Hacerlo todo a la vez puede facilitar la tarea a la hora de restaurarlo todo y volver a ponerlo todo en su sitio, en vuestras manos os dejo este detalle.

Copia de seguridad completa, archivos y bases de datos MySQL

http://www.forat.info/2010/05/10/backup-automatico-seguro-entre-servidores-debian/

06/09/2011

Backup automtico seguro entre servidores Debian

Pgina 4 de 7

Para comenzar voy a comprimir el directorio donde se encuentran todos mis Blogs, as que nos situamos en nuestro servidor remoto y localizamos el directorio que queramos hacer la copia de seguridad, en mi caso es /home/usuario/www/ del cuelgan todos los directorios donde tengo los Blogs

cd /home/usuario Ahora comprimiremos el directorio ( www ) con

tar -czf /home/usuario/backupwww.tar.gz /home/usuario/www Una vez comprimido aremos una copia de seguridad masiva de todas las bases de datos que tenemos con

mysqldump -uroot -pPASSWORD --all-databases > /home/usuario/backupmysql.`date +%Y%m%d`.sql (Esta ultima linea es toda seguida no partida en dos ) Donde pone password introducid el password que tenga root en la base de datos MySQL no en el sistema. Una vez hechas las dos copias de seguridad ya tenemos todo lo que necesitamos para restaurarlo todo en caso de catstrofe. backupwww.tar.gz y backupmysql.sql los tenemos en el directorio /home/usuario y en caso de necesitarlos los tenemos hay pero si recordamos al principio del articulo eliminamos las pegas de la peticin del password al acceder a nuestro servidor en casa. Si nuestro servidor casero no necesita que le introduzcamos el password a mano podremos enviar estos dos ficheros por una conexin segura va sftp. El tema est en automatizar el proceso para que no tenga que hacerlo yo a mano y ya que tengo estas dos maquinas conectadas las 24 h porque no vamos a dejarlas que cumplan ellas dos solas esta tarea por nosotros. Una vez hechas las copias de seguridad de todo lo que necesitamos tanto de los directorios como de las bases de datos MySQL necesitamos enviarlos a nuestro servidor casero con sftp. Para hacer esto vamos a usar el programador de tareas por defecto en todos los sistemas operativos GNU/Linux. Con Cron podremos decirle a que hora hacer las copias de seguridad y a que hora enviarlas a nuestro servidor casero que le esta esperando con su propia llave de acceso. En mi caso se a ciencia cierta que el trafico menos intenso suele estar sobre las 8 de la maana los viernes y los sabados con lo que voy a programar todas las tareas de Backup y envo remoto a partir de esa hora y en esos das. Si repasamos el articulo donde os contaba como funciona el programador de tareas Crontab veremos su funcionamiento y podris adaptarlo a vuestras necesidades.

Un pequeo script llamado backup.sh


Antes de programar nada vamos a crear un pequeo script que har todo lo que necesitemos correlativamente del siguiente modo

http://www.forat.info/2010/05/10/backup-automatico-seguro-entre-servidores-debian/

06/09/2011

Backup automtico seguro entre servidores Debian

Pgina 5 de 7

vi /home/usuario/backup.sh Una vez dentro del editor aadimos las lineas que usamos anteriormente para comprimir nuestros datos web y las bases de datos MySQL as

#!/bin/sh tar -czf /home/usuario/backupwww.tar.gz /home/usuario/www mysqldump -uroot -pPASSWORD --all-databases > /home/usuario/backupmysql.`date +%Y%m%d`.sql No est de mas recordar que la linea donde hacemos la copia de seguridad de todas nuestras bases de datos es una sola y no dos separadas por un espacio, evitemos confusiones Salimos y guardamos el archivo backup.sh pulsando la tecla ( ESC ) seguidamente ( :wq! ) y por ultimo ( Enter ). Le damos permisos

chmod 777 backup.sh

Automatizando tareas con Crontab


Vamos a continuar agregando una linea que le dir al programador de tareas que haga una copia de seguridad de nuestros contenidos pero antes vamos a asignarle a Cron el editor de texto ( Vi ) del siguiente modo

export EDITOR=/usr/bin/vi Ahora abrimos el programador de tareas con

crontab -e Ahora agregamos las siguientes lineas

05 8 * * 5 /home/usuario/backup.sh Con esto le decimos que cada viernes a las 8:05 de la maana comprima todo el directorio www al fichero backupwww.tar.gz y que seguidamente se forme una copia de seguridad de todas las bases de datos MySQL que tengamos. Ahora el solo har las copias de seguridad de todos nuestros datos una vez a la semana. Seguidamente vamos a agregarle la siguiente linea donde enviaremos dichos archivos a nuestro servidor casero el cual equipamos anteriormente con la llave de la siguiente forma

00 9 * * 5 scp /home/usuario/backup* usuarioremoto@maquinaremota: /home/usuario/backup

http://www.forat.info/2010/05/10/backup-automatico-seguro-entre-servidores-debian/

06/09/2011

Backup automtico seguro entre servidores Debian

Pgina 6 de 7

Ahora los dos archivos anteriores de copia de seguridad que comienzan por el nombre ( backup ) se copiarn a las 9:00 de la maana de cada viernes. Salimos del crontab pulsando la tecla ( ESC ) seguidamente ( :wq! ) y por ultimo ( Enter ). Reiniciamos el demonio de Crontab con

/etc/init.d/cron restart Recordemos que en el servidor de casa donde vamos a alojar las copias de seguridad tiene que tener una carpeta con permisos para que se pueda escribir, por lo tanto nos situamos en nuestro servidor casero y tecleamos

chmod 777 /home/usuario/backup Ahora todos los viernes entre las 8 y las 9 de la maana tendremos una copia de seguridad fresca de todos nuestros contenidos generados en la ultima semana. Todo esto est muy bien pero si algn da nuestro servidor fallece tendremos que saber como volver a tener todos nuestros Blogs de nuevo funcionando.

Restaurando las copias de seguridad


Para restaurar una copia de seguridad tanto de los directorios como de las bases de datos que antes copiamos vamos a situarnos en el servidor casero que es quien tiene las copias. Desde el enviaremos las copias hacia nuestro servidor remoto ya configurado con su Apache, Mysql y dems, tan solo necesita las bases de datos y los directorios con los Blogs as que vamos a subir los archivos con ..

scp /home/usuario/backup/backup* usuario@servidorremoto:/home/usuario Ahora tenemos las copias de seguridad de nuevo en nuestro servidor remoto. Accedemos a el via SSH con

ssh usuario@servidorremoto Ahora vamos a restaurar el fichero backupwww.tar.gz y podremos ver de nuevo el directorio www con

tar -xvzf backupwww.tar.gz Ahora vamos a restaurar el fichero backupmysql.sql que contiene todas las bases de datos de todos los blogs con

mysql -u root -p < /home/usuario/backup/mysql.sql Y listo !! Ahora tenemos todos nuestros Blogs tal y como los tenamos en la ultima copia de seguridad que hicimos.

http://www.forat.info/2010/05/10/backup-automatico-seguro-entre-servidores-debian/

06/09/2011

Backup automtico seguro entre servidores Debian

Pgina 7 de 7

Ahora podemos despreocuparnos del tema de las copias de seguridad ya que nuestros dos servidores se ocuparn de hacer el trabajo por nosotros y si necesitamos restaurar las copias y no nos acordamos siempre tendremos este manual OnLine 24 h Non Stop

http://www.forat.info/2010/05/10/backup-automatico-seguro-entre-servidores-debian/

06/09/2011

Вам также может понравиться