[eside-ghost] Copias de seguridad online

Ender eduvedder en terra.es
Vie Ene 14 11:03:53 CET 2005


Aupa!

> Ni golfa sobre esta empresa, pero lo que es bastante barato y fiable es
> pillar hosting y subir un index.html generado con ":> index.html" y
> usarlo como almacen brutal, con un ancho de banda anchiiiisimo y
> bastante espacio.
menuda tanada!! xDDDDDDD
no, en serio, además el rsync sobre ssh va perfecto, te hace copias 
incrementales y puedes montartelo tú mismo con un buen disco duro.

te pasteo un script que hice para un "servidor" (entre comillas) de backups. 
El script parte de un fichero con el formato:
maquina|directorio
y deja en /backups/maquina/anyoMes/directorio los datos.

Luego tengo otro script que rota cada mes estos backups comprimiendo y 
tareando el directorio anyoMes para hacer el primer dia de cada mes un backup 
completo y luego ir haciendo incrementales cada dia (si borras cosas en el 
cliente no se borran en el servidor).

Saludos,
    Ender

########## script pasteado. 0 vaciles con los 2 echos por cada mensaje ;-P
#!/bin/sh
####################################################################################
# Fichero:backups.sh
# Descripcion:Script de servidor de backups
# Autor:Eduardo Gonzalez de la Herran
# Fecha:20050110
# Entradas:un fichero con los backups a realizar
#El formato del fichero es el siguiente:
#maquina(nombre dns o ip)|directorio
# Modifs:Los backups se dejan en /backups/nombre_maquina/AAAAMM/
#####################################################################################

fecha_total=`date +"%d/%m/%Y %H:%M:%S"`
fecha_ano_mes=`date +"%Y%m"`
fecha_ano_mes_dia=`date +"%Y%m%d"`
FILE_ERRORS=/root/scripts/logs/errorsBackups.log
FILE_LOG=/root/scripts/logs/backups.log.$fecha_ano_mes_dia.txt
DIR_BACKUPS=/backups
FILE_LOCK=/root/scripts/rsync.lock

# Si existe el fichero de lock salimos
test -f $FILE_LOCK && echo "$fecha_total : ENCONTRADO FICHERO LOCK!! NO SE 
REALIZAN BACKUPS" >> $FILE_ERRORS && exit1

# Creamos fichero de lock
touch $FILE_LOCK

if [ "$1" = "" ] || [ ! -f $1 ]; then
 echo "$fecha_total - Se debe pasar un file con la lista de backups a 
realizar. FIN" >> $FILE_ERRORS
 echo "$fecha_total - Se debe pasar un file con la lista de backups a 
realizar. FIN"
 exit 1
fi
lista_backups=$1
echo "$fecha_total --- INICIO EJECUCION ---" >> $FILE_LOG

for linea in `cat $lista_backups`; do
 maquina=`echo $linea | cut -d "|" -f 1`
 directorio=`echo $linea | cut -d "|" -f 2`
 echo "Backup de maquina $maquina y directorio $directorio ..." >> $FILE_LOG
 DIR_MAQUINA=$DIR_BACKUPS/$maquina
 DIR_DESTINO=$DIR_MAQUINA/$fecha_ano_mes
 # Se crea directorio para backups de la maquina si no existia
 test ! -d $DIR_MAQUINA && mkdir $DIR_MAQUINA && echo "NUEVA MAQUINA $maquina 
- Creando directorio" >> $FILE_LOG
 # Si no existe el directorio del mes se crea. Puede ser mes nuevo.
 test ! -d $DIR_DESTINO && mkdir $DIR_DESTINO && echo "NUEVO MES - Creando 
directorio" >> $FILE_LOG
 # Lanzamos rsync
 rsync -avR $maquina:$directorio $DIR_DESTINO/ >> $FILE_LOG || echo 
"$fecha_total - $maquina - $directorio - ERROR. rsync no ha podido realizar 
el backup. Mirar log del dia para mas detalles." >> $FILE_ERRORS
 echo >> $FILE_LOG
done

fecha_total_fin=`date +"%d/%m/%Y %H:%M:%S"`
echo "$fecha_total_fin --- FIN EJECUCION ---" >> $FILE_LOG
echo >> $FILE_LOG
#Eliminamos fichero de lock y salimos
test -f $FILE_LOCK && rm $FILE_LOCK



Más información sobre la lista de distribución eside-ghost