logo

cpio y la sencilla gestión de copías de seguridad
22.8.05


Las copias de seguridad son inexcusablemente una parte importante en la gestión diaria de un equipo informático. Linux presenta una amplia oferta de herramientas para realizar copías de seguidad vía línea de comandos: es el caso de amanda (tal vez el sistema más completo), afio (el más completo para el usuario doméstico con un impresionante ratio de compresión y cuyos ficheros suelen ser muy fiables a la hora de recuperar la copia), cpio (el orígen de afio y muy sencillo de utilizar para usuarios domésticos que no tengan una gran potencia de procesamiento en su ordenador), dump (un clásico en Unix/Linux) y finalmente bzip2 (utilizado junto con tar convierte cualquier fichero reduciendo su tamaño de forma extraordinaria).

Existen algunas interfaces de usuario (GUI) sencillas que permiten gestionar más intuitivamente las copias de seguridad: es el caso de Konserve para KDE. En Sourceforge existen cientos de aplicaciones de gestión de backup bajo licencia GNU y entorno gráfico.

Los administradores afirman que, para comenzar a trabajar en la gestión de copias de seguridad, lo ideal para los novatos es empezar por lo más sencillo: realizarlas manualmente mediante comandos de shell simples, si acaso que sólo compriman como tar o gzip en el disco duro. Posteriormente, ya cansado de teclear comandos en la shell es el momento de introducirse en la gestión de tareas periódicas mediante cron y volcar las copias de seguridad en otros dispositivos (CD, cintas…) El siguiente paso sería introducirse en herramientas más potentes como dump o cpio y, si el cuerpo pide más, dar el salto a amanda o afio.

El siguiente script permite realizar copias de seguridad todos los días: un día de la semana (en el script, el lunes) guardará en un fichero cpio todos los directorios que le indiquemos en las variables files1, files2, ..., filesn incluyendo sus ficheros y subdirectorios. En el resto de los días de la semana recogerá, para cada directorio que determinemos en las variables anteriores, los ficheros que hayan cambiado desde el último día que se hizo el backup completo (backup incremental). P.e. el backup incremental del martes recogerá los ficheros modificados entre el momento de realizar el backup y el lunes y el miercoles, el backup que realizará salvará el trabajo de las últimas 48 horas y así sucesivamente…

Realizada la tarea, el script enviará un correo-e a la dirección que deseemos.

########### backup-diario-increm-completo.sh
########### por http://amalgamadeletras.blogsome.com
###########
#!/bin/sh
(

dia=`date +%a` # dia de la semana
fecha=`date +%y%m%d` # fecha del backup para identificar fichero cpio

periodo=`date +%u` # Determina el valor de -mtime en función del día de la semana (1,2...7)

direc="/home/anonymous/Desktop/Suse10-server/Backup" # Un directorio para hacer el $fecha-backup


#directorios sobre los que se realizará un backup sin guardar los permisos de usuario

files1="/home/anonymous/.kde/share/apps/kmail/"

files2="/home/anonymous/Desktop/Gerencia/"

files3="/home/anonymous/.kde/share/config/"

files4="/home/anonymous/.mozilla/firefox/vn3oew0t.default/"

files5="/home/anonymous/Desktop/Fotos/"

files6="/home/anonymous/.kde/share/apps/korganizer/"

files7="/home/anonymous/.kde/share/apps/kpilot/DBBackup/"

files8="/home/anonymous/wallpapers/"


echo "Con fecha "

echo $fecha


case $dia in
"Mon") #ejecuta un backup completo el dia indicado por la variable $dia

find $files1 $files2 $files3 $files4 $files5 $files6 $files7 $files8 | afio -o -Z -P bzip2 -Q -9 $direc/$fecha-backup-semanal.afio

md5sum $direc/$fecha-backup-semanal.afio > $direc/$fecha-backup-semanal-md5sum.txt #Calcula SUM del fichero backup afio

rm -r $direc/*backup-increm*.cpio #Borra ficheros semanales backup increm

echo "se ha realizado un backup TOTAL de los siguientes directorios: "

echo $files1 $files2 $files3 $files4 $files5 $files6 $files7 $files8
;;
*)

#ejecuta un backup incremental de domingo a viernes

find $files1 -depth -mtime -$periodo | cpio -ova > $direc/$fecha-backup-increm-kmail.cpio

find $files2 -depth -mtime -$periodo | cpio -ova > $direc/$fecha-backup-increm-gerencia.cpio

find $files3 -depth -mtime -$periodo | cpio -ova > $direc/$fecha-backup-increm-kmail-config.cpio

find $files6 -depth -mtime -$periodo | cpio -ova > $direc/$fecha-backup-increm-korganizer.cpio

find $files7 -depth -mtime -$periodo | cpio -ova > $direc/$fecha-backup-increm-palm.cpio

echo "se ha realizado un backup INCREMENTAL de los siguientes directorios: "

echo $files1 $files2 $files3 $files6 $files7
;;

esac

chmod 707 $direc/* #Da permisos rwx---rwx a los ficheros

) | /bin/mail -s 'Backup diario ejecutado' tu_id@tu_servidor_de_correo.com



Ideal para realizar copias de seguridad es automatizarlas en segundo plano mediante el cron y una llamada a un sencillo script. En el caso de este script, suponiendo que se desee mantener su nombre, que el script se encuentre en /home/anonymous/Documents/scripts/ y que se lanzará todos los días a las 17 horas, debemos añadir la siguiente linea a la lista de tareas mediante crontab:

00 17 * * * sh /home/zutanito/scripts/backup-diario-increm-completo.sh

+info: Hacer un backup de los artículos de Blogspot mediante un script | El boleto de primitiva en el escritorio | Borrado masivo de ficheros a partir de un patrón | Obtener fondos de escritorios automáticamente |

>> Publicado en Categoría: Linux>

| Permalink | Enlaces a este artículo | Enviar por correo-e |

Marcadores sociales: Meneame | Fresqui | Facebook | FriendFeed | Google Bookmarks | Yahoo! My Web | Technorati | Twitter | Delicious |

0 Comentarios:

Publicar un comentario

<< Principio


2.0