Como realizar copias de seguridad en GNU/Linux con el comando DD y RSYNC

Publicado: 30 de mayo de 2013 en SIRL

Para empezar bien el verano, vamos a ir con una utilidad que muchas veces nos sera de mucha utilidad. Las copias de seguridad.

Existen diversas formas de realizar una copia de seguridad. Nosotros vamos a utilizar una utilidad bastante interesante, la cual es conocida como comando “dd”. Esta utilidad viene integrada en linux y se ejecuta mediante línea de comandos.

Lo primero que debemos de conocer es la sintaxis básica del comando, la cual es:

“dd if=origen of=destino”

Donde if significa “input file”, es decir, lo que queréis copiar y of significa “output file”, el archivo destino (donde se van a copiar los datos). Origen y destino pueden ser dispositivos (lectora de CD o DVD, disco duro, diskettera…), archivo de copia de seguridad o imagen de disco.

Lo primero que debemos de saber a la hora de realizar una copia de seguridad es que discos duros y que dispositivos de almacenamiento tenemos conectados en nuestro equipo. Para ello

utilizaremos el comando: “sudo fdisk -l”


Captura de pantalla de 2013-05-30 10:05:17

Vista esta imagen vemos los nombres de nuestras unidades y como esta particionado nuestro disco duro. En este caso observamos como nuestro disco duro tiene 2 particiones reales (una principal y otra extendida) y una virtual dentro de la partición extendida.

Para nuestro ejemplo, crearemos una copia de nuestra partición primaria (la cual ocupa 482 GB), en otro HDD (El cual ha recibido el nombre de sdb).

El comando utilizado será: “sudo dd if=/dev/sda1 of=/dev/sdb bs=1M”

Donde:

sda1: Es la primera partición (1) del primer disco duro (a), el disco de origen.

sdb: Es el segundo disco duro, el disco de destino.

bs: Indicamos que la copia se haga en bloques de 1 Megabyte y que se escriba de igual manera. Cuanto más pequeña sea esta cantidad, nos aseguramos de que los datos se copien correctamente, sin embargo, estaremos perdiendo velocidad, por lo que nuestra copia se podría ralentizar excesivamente (si no ponemos nada nos cogerá por defecto 1M).

En nuestro caso no sería lógico, pero si tuviésemos una partición extendida de mayor tamaño, podríamos hacer una copia del contenido de una partición a otra, lo ejecutaríamos con el siguiente comando:

“sudo dd if=/dev/sda1 of=/dev/sda2 bs=1M”

Si lo que queremos es hacer una imagen de una partición, podríamos ejecutarlo con este comando:

“sudo dd if=/dev/sda1 of=imagen.iso”

En este caso se nos crearía una imagen.iso en nuestra carpeta de usuario, la cual posteriormente podríamos copiar a un medio externo para tener nuestra copia de seguridad.

Si además de lo anterior, nos gustaría que la imagen estuviera comprimida, lo que habría que introducir seria los siguiente:

“sudo dd if=/dev/sda1 | gzip > imagen.iso.gz”

En caso de querer hacer una copia del MBR (sector de arranque del HDD) este comando nos da la posibilidad de realizarlo y de recuperarlo posteriormente. para ello los comandos deberían de ser:

“sudo dd if=mbr of=/dev/sdb” Para crear la copia de seguridad.

“sudo dd if=/dev/sdb of=mbr” Para restaurar el MBR.

Otra de las opciones que nos permite realizar este comando es la creación de imágenes de CD. la sintaxis seria: ”sudo dd if=/dev/cdrom of=copiadvd.iso”. Esto es útil sobretodo en el caso de que nuestro CD estuviese rayado o estropeado. En este caso usaríamos el siguiente comando con los parámetros que vemos a continuación::

“sudo dd if=/dev/cdrom of=copiadvd.iso conv=noerror,sync”

Donde la opción “noerror” sirve para obviar los errores de lectura en cualquier situación.

Para terminar, hablaros de otra función que posee el comando dd, y es la de borrado completo y a bajo nivel del disco duro o de una partición. La cual evidentemente no hemos podido probar, pero sería:

“sudo dd if=/dev/zero of=/dev/sdb” (Borrado completo del segundo disco)

“sudo dd if=/dev/zero of=/dev/sdb2″ (Borrado de la partición 2 del primer disco)

Por otro lado, existe un método bastante fácil que va también sobre comando, este es rsync, el cual es un método simple que mantiene sincronizados el contenido de dos carpetas, copiando los nuevos archivos, borrando los eliminados y solo actualizando los necesarios además de poder hacerse las copias entre dos máquinas diferentes a través de la red.

Las características más importantes son:

  • Velocidad:  réplicas de todo el contenido entre la fuente y directorios de destino ejecutando las transferencias  sólo de los bloques o bytes modificados a la ubicación de destino, lo que hace la transferencia muy rápida.

  • Seguridad: rsync permite el cifrado de datos mediante el protocolo SSH durante la transferencia.

  • Bajo ancho de banda: rsync utiliza la compresión y descompresión del bloque de datos por el bloque en el envío y la recepción final, respectivamente. Por lo tanto el ancho de banda utilizado por rsync será siempre inferior en comparación con otros protocolos de transferencia de archivos.

  • Privilegios: No hay privilegios especiales que sean necesarios para instalar y ejecutar rsync.

La sintaxis del comando seria:

“rsync opciones origen destino”

newrsynclogo

Veamos unos casos prácticos:

Sincronizar 2 directorios en nuestro servidor local o disco duro.

“rsync -zvr /home/usuario/Documentosimportantes/  /home/usuario/Copia2010/”

donde,

z : activa compresión.

v : modo verbose.

r : indica recursividad. Lo hara con todos los archivos y directorios que cuelgan de Documentosimportantes.

Sincronizar unicamente un archivo.

“rsync -av /home/usuario/Documentosimportantes/listado.odt  /home/usuario/Copia2010/listado.odt”

Sincronizar archivos desde servidor local o nuestro disco duro a servidor remoto.

Se debe especificar el usuario y la dirección ip del servidor remoto, asi como el directorio de destino.

“rsync  -avz /home/usuario/Doc_importantes/  openyourshell@192.168.1.100:/home/openyourshell/”

Sincronizar archivos en un servidor remoto en modo seguro mediante ssh.

Añadiremos la opción -e y ssh.

“rsync -avz -e ssh  openyourshell@192.168.1.100:/home/openyourshell/  /root/Copia2010rem/”

Sincronizar archivos desde un servidor remoto a nuestro servidor local o disco duro.

“rsync -avz  openyourshell@192.168.1.100:/root/Copia2010rem/  /home/usuario/Copia2010/”

Sincronizar sin sobrescribir los archivos modificados o actualizados.

A veces puede interesar hacer una copia de nuestros archivos sin sobrescribirlos para no perderlos y mantener las copias intactas independientemente. Para ello usaremos la opción -u.

“rsync -avzu /home/usuario/Doc_importantes/  /home/usuario/Copia2010/”

Visualizar el progreso de la transferencia en la sincronización.

La opción que añadiremos para hacer esto posible será –progress. Visualizaremos % de progreso.

“rsync -avzu –progress /home/usuario/Doc_importantes/  /home/usuario/Copia2010/”

Sincronizar archivos a un dispositivo externo de nuestro servidor local o disco duro.

Es de uso común hacer respaldos de nuestros archivos a un disco duro externo o pendrive usb. Nos aseguramos de tener nuestro disco externo o pendrive conectado y dev/sdb1/ es el lugar que ocupa, pudiendo ser sdb2,sdc1, etc.

“rsync -avz /home/usuario/Documentosimportantes/  dev/sdb1/”

Sincronizar archivos y borrar los archivos en el directorio destino que ya no se encuentran en nuestro directorio fuente.

La opción a utilizar es  –delete.

“rsync -avz –delete /home/usuario/Doc_importantes/  /home/usuario/Copia2010/”

Esto es todo, si necesitais hacer copias de seguridad, aquí tenéis buena información para llevarlas a cabo.

Un saludo y hasta la próxima 😉

 

 

 

Fuentes:
http://blog.desdelinux.net/uso-del-comando-dd/
http://preguntaslinux.org/-guia-el-comando-dd-t-10.html
http://openyourshell.wordpress.com/2010/12/30/el-comando-rsync-para-nuestras-copias-de-seguridad-en-gnulinux/
http://fraterneo.blogspot.com.es/2011/03/haciendo-copias-de-seguridad-con-el.html
Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s