viernes, 16 de septiembre de 2011

rsync: copia "incremental" en unos segundos (o minutos)

¿Cómo podíamos trabajar en esos tiempos oscuros en que no conocíamos rsync? Ahora mismo acabo de hacer una copia de seguridad de todo lo importante de mi ordenador y ha tardado unos minutos. Es muy simple:
1. Terminal
2. rsync -avr --delete /origen/ /destino/ && rsync -avr --delete /origen/ /destino/ && rsync -avr --delete /origen/ /destino/ tantos como directorios raíz a copiar
3. Esperar los minutos necesarios según volumen
4. Realizado
Las opciones hacen:
-a archive (conserva las propiedades de los ficheros - equivalente a -rlptgoD). Mantiene recursivamente (r) los enlaces simbólicos (l), permisos (p), fecha y tiempo (t), grupo (g), usuario (o).
-v verbose (para ver lo que está copiando y borrando)
-r recursive (copia los subdirectorios internos)
--delete elimina en destino lo que haya sido eliminado en origen.
Es importante separar las ordenes continuas con && ya que así, si en la copia de uno de los directorios aparece un error, para ahí y sabemos que directorios ha copiado y cuales no (el siguiente comando se ejecuta SI y solo SI el anterior se ha ejecutado correctamente), y por ello es también importante la opción verbose, para poder ver directamente en el terminal en que directorio ha parado.
En resumen, he actualizado mi copia de seguridad, compuesta de 472196 ficheros, 574,1GB (medido con filelight) en pocos minutos, ya que solo incorpora lo nuevo y borra lo eliminado en los directorios origen.
Una herramienta sin igual.

PD. No, no es más fácil con un programa gráfico, que, por otra parte, es solo una GUI de rsync. Yo tengo preparado la lista de directorios, copio, pego (2 segundos) y ejecuto; espero un poquito; listo.

2 comentarios:

  1. Esta no es una copia incremental... Con ese comando se mueven los archivos y se eliminan de origen, una copia incremental sería hacer una copia del origen al destino y posteriormente hacer una copia de los cambios del origen. al destino sin necesidad de copiar todo de nuevo.

    ResponderEliminar
  2. No es así. La opción --delete borra EN EL DESTINO lo que ya no está en el ORIGEN. Así mantenemos el origen y el destino iguales. Por ejemplo, en mi caso, mantengo un espejo de /home/usuario en un segundo disco. No completo, por que no me interesan las configuraciones de muchos programas; solo guardo los datos, wine, y algunas configuraciones (por ejemplo, mozilla). Se estropea todo y en 30-45 minutos tengo el ordenador funcional y con todo dentro. Pueden faltar algunas configuraciones, pero las voy formando al instalar el software cuando me hace falta.

    ResponderEliminar