Debido a esto son varias las ocasiones en las que nos solicitan realizar restores de ficheros de log de varios dias y de distintas aplicaciones.
Por ejemplo los logs del mes de octubre de la aplicación "SuperAppEnJava" que empiecen por logs_serv.
Para aligerar la tarea y no tener que estar abriendo cada dos por tres el interfaz de Netbackup e ir seleccionando entre los distintos directorios de los distintos servidores donde se desplegaba la aplicación, me monte un script que selecciona los ficheros a copiar con bplist y restaura con bprestore desde consola:
El script nos va solicitando los datos necesarios para la ejecución del restore, (Cliente, fecha de incio, fecha de fin, politica, un patrón de los ficheros a restaurar y el directorio destino del que colgará el restore que colgará de /backups/ en nuestro servidor de Netbackup, pero esto se puede cambiar con una pequeña modificación del script. Sustituid los campos entre llaves por los valores utilizados en vuestro sistema.
#!/bin/bash
#by s4b4sTI 11/2013
#Definicion de variables
BPLIST={path netbackup}/bplist
BPRESTORE={path netbackup}/bprestore
RENOMBRAR=/tmp/path_restores
RESTORES=/restores/
LOGS=/var/log/restore_log.log
LISTA=/tmp/filelist
DESTINO={servidor_destino}
###Comenzamos sacando la lista de los ficheros
echo "Introduce el cliente"
read CLIENT;
echo "Introduce fecha inicio MM/DD/AAAA"
read INICIO;
echo "Introduce fecha fin MM/DD/AAAA"
read FIN;
echo "Introduce la politica"
read POL;
echo "Introduce el patron de los ficheros a restaurar"
read PATRON;
###Imprimimos el comando por pantalla y lo ejecutamos, va bien para registrar la ejecución en algún log.
echo "bplist -R 99 -C $CLIENT -l -k $POL -s $INICIO -e $FIN -l $PATRON"
$BPLIST -R 99 -C $CLIENT -l -k $POL -s $INICIO -e $FIN -l $PATRON | awk '{print $8}' > $FILELIST
echo "Se restauraran los ficheros:"
cat $LISTA;
echo "";
#Pedimos confirmacion y si es correcto continuamos con el restore.
echo "Es correcto? (y/n)"
read OPTION;
if [ "$OPTION" == "y" ];
then #Solicitamos DIRECTORIO para crear el directorio destino del restore que colgará de $RESTORES
echo "Introduce el directorio destino";
read PETICION
mkdir -p $RESTORES$PETICION
echo "change / to $RESTORES$PETICION" > $RENOMBRAR;
#Ejecutamos el comando con -w para que espere la finalizacion del restore antes de empaquetar y comprimir.
echo "Restaurando..."
$BPRESTORE -w -C $CLIENT -s $INICIO -e $FIN -D $DESTINO -L $LOGFILE -R $RENOMBRAR -f $LISTA
#Informamos de la finalizacion del restore, empaquetamos, comprimimos y limpiamos
echo "Restore finalizado, empaquetamos, comprimimos y limpiamos"
tar cvf $RESTORES$PETICION.tar $RESTORES$PETICION/*
gzip $RESTORES$PETICION.tar
rm -rf $RESTORES$PETICION
echo "Puede recoger su archivo en $RESTORES$PETICION.tar.gz"
else
echo "bye";
exit 0;
fi
#Sacabo
Espero que os sea util!!
No hay comentarios:
Publicar un comentario