23 julio 2007

rsync

Continuación de la historieta anterior.

He estado trasteando con los discos duros y he escrito un pequeño script que utiliza rsync para hacer copias de seguridad de los datos del home.

Disco duro 1 (40 GB):
- 1 GB de swap
- 39 GB de ext3 para Debian

Disco duro 2 (250 GB):
- 110 GB de ext3 para copias de seguridad
- 60 GB en FAT32 para lo que surja
- 65 GB en FAT32 para lo que surja

Disco duro 3 (80 GB):
- 50 GB de ext3 para copias de seguridad
- 30 GB de FAT32 para lo que surja

Las particiones FAT32 a lo mejor algún día puedan albergar un Windows XP pero de momento no tienen utilidad porque no suelo bajarme nada del P2P.

He creado un script que copia el contenido de /home a los otros 2 discos duros. Con rsync es igual de fácil que usar el comando cp.


#!/bin/sh
export PATH=/usr/local/bin:/usr/bin:/bin
echo `date` Inicio backup
rsync -arv --delete /home /backup1
rsync -arv --delete /home /backup2
echo `date` Fin backup


El parámetro -a de rsync intenta mantener toda la información de los ficheros: propietario, grupo, permisos, enlaces simbólicos, etc. Por eso hago el destino es también una partición ext3.

rsync hace una copia incremental, sólo copia los ficheros modificados o nuevos con lo a partir de la segunda copia de seguridad el proceso es relativamente rápido.

El parámetro --delete indica que se deben borrar en el directorio destino lo ficheros que no estén en el origen. Sin este parámetro los ficheros que renombremos o borremos en el home seguirán estando en el directorio de backup.

Estoy meditando sobre cada cuánto tiempo ejecutar el script. En un principio he programado cron para que lo haga cada hora, pero igual satura mucho el sistema y es peor.


Yo he usado rsync en un sólo ordenador, pero tiene soporte para realizar copias a través de ssh y un montón de opciones. El man es muy largo y tiene muchas cosas.