viernes, 12 de febrero de 2010

Respaldando datos con rsync

Hoy veremos el comando RSYNC. Que siempre viene bien tener a mano un programa que hace backups. Yo lo uso para hacer un backup de mi pendrive, así guardo todo lo que hago en clase cada día. También me sirve para tener mi carpeta de “documentación” actualizada siempre en el pendrive. Vamos al lio:

Descripción del comando:
Rsync se define a si mismo como rapida, versatil, remota ( y local ) herramienta de copiado de ficheros.

Instalación:
Mediante synaptic, claro:
$ sudo aptitude install rsync

Sintaxis:
rsync [opciones] origen destino

Parametros y configuraciones:
Bien, me voy a dejar opciones seguro. Si hacen un “man rsync” encontrarán unas 2800 paginas de ayuda. Yo les quiero comentar las opciones más interesantes y de manera resumidilla:

-a: Archiva. Es una buena configuración. Es sinonimo que especificar “-DGgloprt”
-b: Hace una copia de los ficheros, aún estando en el destino. Normalmente no es útil utilizar esta opción, a no ser que se quiera tener copia de cada una de las versiones del fichero.
-g: Preserva el grupo de los ficheros que van a ser replicados. Importante para los backups.
-H: Preserva los “hard-links”. Esta opción relentiza el copiado, pero es muy recomendable.
-l: Copia los “symlinks” como “symlinks”. Sin esta opción marcada, un link simbólico sería respaldado como un fichero.
-n: Dry run ( Ejecución Seca ): Lista los ficheros que van a ser transferidos, pero no hace el respaldo.
-o: Preserva el usuario posesor de los ficheros que van a ser replicados. Importante.
-p: Preserva los permisos de los ficheros. Importante.
-r: Activa la recursividad. Para incluir todos los subdirectorios de una carpeta.
--rsh='ssh': Utiliza SSH par la transmisión de datos. Es recomendable ya que sinó usa el protocolo inseguro rsh. Se usa cuando el servidor remoto tiene instalado SSH, evidentemente.
-t: Preserva las fechas de modificación de cada fichero.
-v: Hace una de los ficheros que son transferidos.
-vv: Igual que -v, pero además muestra los ficheros que no van a ser copiados.
-vvv: Igual que -vv, pero también imprime información de debug de rsync
-z: Activa la compresión. Importante si hacemos respaldos a través de Internet.


Y ahora veamos un ejemplo:
#!/bin/bash
if [ -d "/media/FLASHDRIVE/" ]
then
rsync -altgv /media/FLASHDRIVE/TEMPORAL/ /home/inedit/Documentos/Backup/
else
echo "Debe colocar el dispositivo USB"
fi

Comprobamos si existe el directorio “flashdriver”. O sea, miramos si tenemos conectado o no el pendrive. En caso de que así sea, realizamos el respaldo viendo los datos que están siendo copiados.

Dejandolo todo en su sitio:
Ejecutaremos el comando:
$ chmod +x ./respaldo
$ cp ./respaldo /usr/bin/respaldo

Donde “respaldo” es el nombre de nuestro comando. Lo copiamos en /usr/bin porque así, cada vez que queramos ejecutar el respaldo de datos bastará con escribir en una consola:
$ respaldo

Saludos!

No hay comentarios:

Publicar un comentario