[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