Mostrando entradas con la etiqueta Netbackup. Mostrar todas las entradas
Mostrando entradas con la etiqueta Netbackup. Mostrar todas las entradas

jueves, 14 de noviembre de 2013

Restore desde linea de comandos

En mi actual trabajo, debido al gran número de aplicaciones con el que trabajamos y para que los desarrolladores dispongan de los logs de todos los entornos, centralizamos todos los logs en un servidor para su consulta. Estos se rotan diariamente y se eliminan los de +4 días.

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!!