#!/bin/sh Version='0.1' if [ ! -e /root/etc/ibb-respaldo.opciones ]; then echo 'ERROR: no existe /root/etc/ibb-respaldo.opciones.' exit 10 fi if [ ! -e /root/etc/ibb-respaldo.respaldar ]; then echo 'ERROR: no existe /root/etc/ibb-respaldo.respaldar.' exit 10 fi if [ ! -e /root/etc/ibb-respaldo.excluir ]; then echo 'ERROR: no existe /root/etc/ibb-respaldo.excluir.' exit 10 fi . /root/etc/ibb-respaldo.opciones if [ ! -d "$Directorio" ]; then echo "ERROR: no se encontro el directorio '$Directorio' especificado por la opción Directorio." exit 10 fi if [ "$Tipo" != "Full" -a "$Tipo" != "Incremental" -a "$Tipo" != "Diferencial" ]; then echo "ERROR: la opcion Tipo debe ser Full, Incremental o Diferencial." exit 10 fi if [ "$Tipo" = "Incremental" ]; then touch "$Directorio/respaldo.$(hostname -s).controlfecha.tmp" if [ -e "$Directorio/respaldo.$(hostname -s).controlfecha" ]; then #Es un incremental: TarNewer="--newer=$Directorio/respaldo.$(hostname -s).controlfecha" AgregarNombreTipoRespaldo='.incremental' fi fi if [ "$Tipo" = "Diferencial" ]; then if [ -e "$Directorio/respaldo.$(hostname -s).controlfecha" ]; then #Ya se hizo el full, grabamos las diferencias con el: TarNewer="--newer=$Directorio/respaldo.$(hostname -s).controlfecha" AgregarNombreTipoRespaldo='.diferencial' else #Es un nuevo full: touch "$Directorio/respaldo.$(hostname -s).controlfecha.tmp" fi fi echo "Haciendo respaldo '$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.tar.bz2'." cd / /usr/bin/time tar --create --bzip2 --ignore-case --files-from="/root/etc/ibb-respaldo.respaldar" \ --exclude-from="/root/etc/ibb-respaldo.excluir" \ --file="$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.tar.bz2" \ $TarNewer --totals -v $OpcionesExtraTar \ 1>"$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.stdout.txt" \ 2>"$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.stderr.txt" CodSalida=$? if [ "$CodSalida" = "0" ]; then echo "El respaldo terminó sin problemas (codigo de salida 0)." echo "El respaldo terminó sin problemas (codigo de salida 0)." >> \ "$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.stderr.txt" else echo "CUIDADO: el respaldo pudo haber tenido problemas (codigo de salida $CodSalida)." echo "CUIDADO: el respaldo pudo haber tenido problemas (codigo de salida $CodSalida)." >> \ "$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.stderr.txt" fi echo "Verificando el respaldo." /usr/bin/time tar --compare --bzip2 \ --file="$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.tar.bz2" \ 1>>"$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.stderr.txt" \ 2>>"$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.stderr.txt" CodSalida=$? if [ "$CodSalida" = "0" ]; then echo "La verificación terminó sin problemas (codigo de salida 0)." echo "La verificación terminó sin problemas (codigo de salida 0)." >> \ "$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.stderr.txt" else echo "CUIDADO: la verificación terminó señalando posibles problemas (codigo de salida $CodSalida)." echo "CUIDADO: la verificación terminó señalando posibles problemas (codigo de salida $CodSalida)." >> \ "$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.stderr.txt" fi if [ -e "$Directorio/respaldo.$(hostname -s).controlfecha.tmp" ]; then mv "$Directorio/respaldo.$(hostname -s).controlfecha.tmp" \ "$Directorio/respaldo.$(hostname -s).controlfecha" fi echo echo "Listo. Se recomienda ejecutar less '$Directorio/respaldo.$(date -I)$AgregarNombreTipoRespaldo.stderr.txt'" echo