En concreto realiza la copia en dos directorios, uno se encuentra en la carpeta /home/Backup y el otro es un dispositivo que se haya montado en /media/Backup. Para utilizarlo en nuestra máquina hay que cambiar las direcciones de DIRECTORIO_RESPALDO_1 y DIRECTORIO_RESPALDO_2, o eliminar una si no la necesitas (también hay que eliminar el respectivo fragmento que realiza el respaldo para ese directorio). También es recomendable editar las lineas:
find $DIRECTORIO_RESPALDO_1/`basename $1`* -mtime +186 -exec rm -r -f {} \;
find $DIRECTORIO_RESPALDO_2/`basename $1`* -mtime +62 -exec rm -r -f {} \;
Cambiando los números de la opción -mtime que indica los días mínimos que han de tener los respaldos antiguos a eliminar (ejemplo: -mtime +186 son los archivos con más de 6 meses de antigüedad). Si no se quieren eliminar los respaldos antiguos simplemente comenta o eliminar las lineas antes mencionadas. Para acabar, si el DIRECTORIO_RESPALDO_2 no es un dispositivo que se tenga que montar, es recomendable eliminar o comentar las lineas:
mount $DIRECTORIO_RESPALDO_2 >/dev/null
umount $DIRECTORIO_RESPALDO_2 >/dev/null
Para ejecutarlo:
# ./Script /directorio_a_respaldar
#!/bin/bash# Script para automatizar respaldos (Backups)### INICIALIZACIÓN DE VARIABLES ####DIRECTORIO_RESPALDO_1=/home/Backup # Directorio 1 donde se va a realizar el respaldoDIRECTORIO_RESPALDO_2=/media/Backup # Directorio 2 donde se va a realizar el respaldoFECHA_ACTUAL=`date +%d-%m-%Y` # Fecha actual con formato dd-mm-YYYY (ejem: 15-08-2008)NOMBRE_ARCHIVO=`basename $1`[$FECHA_ACTUAL] # Nombre del archivo resultante del respaldo (ejem: Documentos[15-08-2008].tar.gz)### CUERPO DEL SCRIPT ###clear# Comprobar si tiene permisos de rootif [ $UID -ne 0 ]; thenecho "Para poder realizar el respaldo necesita tener permisos de super usuario."exit# Comprobar si se ha pasado como parámetro el directorio/archivo a respaldarelif [ $# -ne 1 ]; thenechoecho "Modo de uso: ./`basename $0` {directorio}"echoecho "Sustituya {directorio} por el directorio a ser el backup"echoexit# Comprovar si se tiene permiso de escritura en el directorio de respaldo 1elif [ -w $DIRECTORIO_RESPALDO_1 ]; thenclearecho "Se van a realizar copias de seguridad de $1 y todos sus contenidos en $DIRECTORIO_RESPALDO_1"sleep 3clearecho "Iniciando el respaldo. La operación puede tardar, no desespere..."# Eliminar archivos con mas de 186 días (seis meses) del directorio de respaldo 1find
$DIRECTORIO_RESPALDO_1/`basename $1`* -mtime +186 -exec rm -r -f {} \;
2>> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO-erros.log# Inicio del logecho "LOG DEL BACKUP DEL DIA `date +%d/%m/%Y`" >> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.logecho "Hora de inicio de backup: `date +%H:%M:%S`" >> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.log# Inicio del respaldotar -czvf $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.tar.gz $1 >> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.log 2>> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO-erros.log# Fin del respaldo# Crear md5md5sum $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.tar.gz >> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO-md5.txt# Finalización del logecho "Hora de termino del backup: `date +%H:%M:%S`" >> $DIRECTORIO_RESPALDO_1/$NOMBRE_ARCHIVO.logecho "El respaldo de $1 y todos sus contenidos en $DIRECTORIO_RESPALDO_1 ha finalizado con exito."elseechoecho "No tiene permiso de escritura en $DIRECTORIO_RESPALDO_1"fi# Montando medio de Backupmount $DIRECTORIO_RESPALDO_2 >/dev/null# Comprobar si se tiene permiso de escritura en el directorio de respaldo 2if [ -w $DIRECTORIO_RESPALDO_2 ]; thenclearecho "Se van a realizar copias de seguridad de $1 y todos sus contenidos en $DIRECTORIO_RESPALDO_2"sleep 3clearecho "Iniciando el respaldo. La operación puede tardar, no desespere..."# Eliminar archivos con mas de 62 dias (dos meses) del directorio de respaldo 2find
$DIRECTORIO_RESPALDO_2/`basename $1`* -mtime +62 -exec rm -r -f {} \;
2>> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO-erros.log#Inicio del logecho "LOG DEL BACKUP DEL DIA `date +%d/%m/%Y`" >> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.logecho "Hora de inicio de backup: `date +%H:%M:%S`" >> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.log# Inicio del respaldotar -czvf $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.tar.gz $1 >> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.log 2>> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO-erros.log# Fin del respaldo# Crear md5md5sum $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.tar.gz >> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO-md5.txt# Finalización del logecho "Hora de termino del backup: `date +%H:%M:%S`" >> $DIRECTORIO_RESPALDO_2/$NOMBRE_ARCHIVO.logecho "El respaldo de $1 y todos sus contenidos en $DIRECTORIO_RESPALDO_2 ha finalizado con éxito."elseechoecho "No tiene permiso de escritura en $DIRECTORIO_RESPALDO_2 o no se ha podido montar correctamente el dispositivo."fi# Desmontando medio de Backupumount $DIRECTORIO_RESPALDO_2 >/dev/nullexit### FIN DEL SCRIPT ###MUY IMPORTANTE si no entiendes claramente como funciona este script no te arriesgues a utilizarlo, en su lugar utiliza este otro más sencillo y seguro.
Para ejecutarlo:
# ./Script /directorio_a_respaldar /directorio_donde_guardar_el_respaldo
#!/bin/bash# Script para automatizar respaldos (Backups)### INICIALIZACION DE VARIABLES ####FECHA_ACTUAL=`date +%d-%m-%Y` # Fecha actual con formato dd-mm-YYYY (ejem: 15-08-2008)NOMBRE_ARCHIVO=`basename $1`[$FECHA_ACTUAL] # Nombre del archivo resultante del respaldo (ejem: Documentos[15-08-2008].tar.gz)### CUERPO DEL SCRIPT ###clear# Comprovar si tiene permisos de rootif [ $UID -ne 0 ]; thenecho "Para poder realizar el respaldo necesita tener permisos de superusuario."exit# Comprovar si se ha pasado como parametro el directorio/archivo a respaldarelif [ $# -ne 1 ]; thenechoecho "Modo de uso: ./`basename $0` {diretorio_a_respaldar} {directorio_donde_respaldar}"echoexit# Comprovando permisos de escrituraelif [ -w $2 ]; then# Inicio del logecho "LOG DEL BACKUP DEL DIA `date +%d/%m/%Y`" >> $2/$NOMBRE_ARCHIVO.logecho "Hora de inicio de backup: `date +%H:%M:%S`" >> $2/$NOMBRE_ARCHIVO.log# Inicio del respaldotar -czvf $2/$NOMBRE_ARCHIVO.tar.gz $1 >> $2/$NOMBRE_ARCHIVO.log 2>> $2/$NOMBRE_ARCHIVO-erros.log# Fin del respaldo# Crear md5md5sum $2/$NOMBRE_ARCHIVO.tar.gz >> $2/$NOMBRE_ARCHIVO-md5.txt# Finalizacion del logecho "Hora de termino del backup: `date +%H:%M:%S`" >> $2/$NOMBRE_ARCHIVO.logecho "El respaldo de $1 y todos sus contenidos en $2 ha finalizado con exito."elseechoecho "No tiene permiso de escritura en $2"fi### FIN DEL SCRIPT ###
No hay comentarios:
Publicar un comentario