[Musix-Help] ¿existe algún sistema de backups automático sobre archivos de configuración?

Iván Belmonte ivan en ivanhq.net
Jue Dic 29 10:54:10 CET 2005


Antes de nada saludos a la lista de nuvo, he pasado mucho tiempo sin
aparecer por aqui.
No llego a tiempo de felicitar las navidades pero sí lo que queda de
fiestas y el año nuevo.

Para los backups yo normalmente suelo recoger a mano lo que me
interesa. Genero un directorio y pongo dentro las cosas que quiero
guardar. Una vez tengo recopilado todo, comprimo el directorio y lo
paso a un servidor de backups que tengo montado en casa.
Este proceso es automatico y se hace cada dia a las 5:00 de la
madrugada. El backup se realiza con retención semanal, lo que significa
que tengo siempre las copias de los ultimos 7 dias.

Para hacer esto os recomiendo usar un simple shell-script que se puede
automatizar en el Cron.

EL shellscript puede ser algo así:


-------------------- Start here ------------------------

#!/bin/bash

DATE=`/bin/date +%F`
TMPDIRPARENT="/tmp/backup"
TMPDIR="/tmp/backup/$DATE"
BACKUPDIR="/var/spool/backup"
ERRORLOG="/tmp/backuperrors-$DATE.log"

# Especificar aqui el numero de dias de retencion
# que debe tener el backup
RETENTION="7"

# Añadir aqui los ficheros o directorios de los que
# se quiere hacer copia.
# Añadir cada entrada en una linea separada puede
# ayudarte a reconocer a simple vista las rutas.
ORIG="\
	/home/ivan \
	/etc/mail \
	/etc/samba \
	/var/log \
	/etc/resolv.conf \
	/etc/network/interfaces"

# se borra el fichro de log por si ya hubiera uno
# que se llame igual
rm $ERRORLOG 2>/dev/null

# se crean los directorios porque teoricamente algunos
# no estan creados todavia
if `! test -d $BACKUPDIR`
then
	mkdir $BACKUPDIR 2>>$ERRORLOG
fi
mkdir -p $TMPDIRPARENT 2>>$ERRORLOG
mkdir -p $TMPDIR 2>>$ERRORLOG


# se copian los datos sensibles al directorio 
# temporal de backup
for DIR in $ORIG
do
	cp -Rp $DIR $TMPDIR/ 2>>$ERRORLOG
done


# comprimimos el backup y lo ponemos en su sitio
cd $TMPDIRPARENT
tar zcvf $DATE.tar.gz $DATE/ 2>>$ERRORLOG
mv $DATE.tar.gz $BACKUPDIR 2>>$ERRORLOG


# ahora controlamos la retencion del backup
cd $BACKUPDIR
BCKCOUNT=`ls *.tar.gz | wc -w`
if `test $BCKCOUNT -gt $RETENTION 2>> $ERRORLOG`
then
	TRASHFILE=`ls *.tar.gz | head -n 1 2>> $ERRORLOG`
	rm $TRASHFILE 2>>$ERRORLOG
fi


# borramos los directorios temporales
rm -rf $TMPDIR

# si no ha habido errores damos un OK, de lo contrario
# cantamos error.
if `test -s $ERRORLOG`
then
	OUTPUT="*** ERROR: see $ERRORLOG for details."
else
	OUTPUT="* Backup successfully archived."
fi

# mensaje de salida
echo " "
echo $OUTPUT
echo " "

---------------- End Of File -----------------------------

Es un ejemplo que acabo de inventar, imagino que es posible que algo no
funcione bien, pero no hay que ser ningun lumbreras para echarle un
vistazo y corregirle los fallos que pueda tener.
Como veis, solamente hace falta modificar 2 parametros. Primero el
numero de dias de retencion (numero de backups antiguos que deseamos
guardar). Despues los directorios o ficheros que deseamos guardar, que
pueden ponerse todos seguidos en una sola linea, pero yo siempre estas
cosas prefiero hacerlas de linea en linea para ver facilmente lo que
contiene la variable a un simple golpe de vista.

Ahora para ejecutarlo lo que podeis hacer es copiar el texto del script
tal cual, y pegarlo en un fichero nuevo. Por ejemplo, un fichero que se
llame "makebackup.sh".
Ahora, como root (muy importante heheh) copiais el fichero
a /usr/local/sbin:

# cp /home/ivan/makebackup.sh /usr/local/sbin/
# chmod 0700 /usr/local/sbin/makebackup.sh

ahora, cada vez que querais hacer un backup, podeis hacerlo a mano
tecleando simplemente:

# makebackup.sh

Si quereis que los backups se hagan automaticamente cada dia a las 5 de
la madrugada (por ejemplo) solo teneis que ponerlo en el cron:

# crontab -e

esto os abrirá un editor de tablas cron. En principio estais editando
con el editor "vi", que es un poquito complejo. Si deseais editarlo con
kedit (por ejemplo) solo teneis que pasarlo como variable de entorno al
ejecutar el editor de cron:

# env VISUAL=/usr/bin/kedit crontab -e

Conste que no uso kedit y no se donde esta su Path, asi que me lo acabo
de inventar. Revisad esto antes de ejecutarlo.
Bien, una vez tengais delante el editor de tablas cron, quye
seguramente va a estar vacio, añadis la linea que automatizará vuestro
backup:

0 5 * * * /usr/local/sbin/makebackup.sh 1>/dev/null

Podeis salir del editor guardando lso cambios aplicados al fichero.
A partir de ahora se realizará vuestro backup a las 5 de la madrugada
de cada dia.

Si alguien desea cambiar cualquier aspecto de este sistema pequeñito de
backups, le recomiendo que lea los "man" y howto's del cron, y que
aprenda un poquito de bash, que no es muy dificil y da mucho juego.




Por otro lado, si alguien desea implementar soluciones de backup
incrementales y completas para sistemas de produccion o preproduccion,
os recomiendo encarecidamente "Amanda".

Si deseais implementar un sistema de backup para disaster recovery, os
recomiendo muy mucho "Mondo Rescue". A efectos de usar esta herramienta
MUY POTENTE, os recomiendo echar un ojo a este pequeño documento que
escribió mi compañero Marcos Martinez en su dia:

  http://www.assl-site.net/article.php?story=20041108192759240&query=mondo


Espero haberos ayudado aunque sea un poco.

Salu2!


   ____________________________________________________|
  /                                                              
 |  Iván Belmonte                                                
 |                                                               
 |  mail:  ivan en ivanhq.net                                      
 |  URL:  www.ivanhq.net
 |  ASSL member (http://assl-site.net)                             
 |  [Linux User]: 265975                                         
  \________________________



On Wed, 28 Dec 2005 23:13:30 +0100
Marcos Guglielmetti <marcospcmusica en yahoo.com.ar> wrote:

> On Tuesday 27 December 2005 12:42, Javier Castrillo wrote:
> > Siempre tengo esa duda existencial.... el sistema debe hacerlo por
> > la propia o el usuario debe ser más avivado???? sobre todo nosotros
> > que la vamos de geeks o usuarios superiores por no usar Win$ y
> > asistentes con perritos que desean ayudarte a escribir una carta.
> > Nos molesta que el software se crea más piola que nosotros.
> > En este caso fuí yo el bobo que antes de reparticionar debí haber
> > tomado backup (o notas ) de los archivos de configuración
> > principales. Cosa básica en cualquier lugar del mundo. Si el sistema
> > lo hace por mí, me está haciendo un poquito más idiota... aunque en
> > este caso los damnificados son los que tienen que usar su tiempo
> > para reexplicarme algo que ya sabía..... en fin. A veces que las
> > cosas sean más fáciles o automáticas hacen que la cosa no sea tan
> > divertida.
> >
> > Un abrazo, gracias y nuevamente disculpas.
> 
> Yo creo que hay personas para todo: geeks, usuarios normales, músicos 
> que nunca usarán nada informático, etc. Pero porque hay mucha
> variedad de personas, deberíamos poder adaptar el sistema a ellos...
> 
> 	¿Alguien conoce una iniciativa (aplicación) para hacer
> backups de los archivos de configuración en un sistema tipo _Debian_
> para restaurar en caso de problemas?
> 
> 	Si no existe, podríamos hacerlo, sería sencillo, creo.
> 
> 





Más información sobre la lista de distribución Musix-Help