ORACLE_HOME=/opt/oracle/12.1/database export ORACLE_HOME
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:. export PATH
export ORACLE_SID=TEST1 export ORACLE_SID
PATH=$PATH:/usr/sbin export PATH FICHERO=/mnt/backup/exp_full_TEST_`date +”%Y%m%d”`
#run export full exp \’sys/test123 as sysdba\’ file=$FICHERO.dmp log=$FICHERO.log full=y statistics=none consistent=yes
NUMROWS=`cat $FICHERO.log | grep “Export terminated successfully” | wc -l` LOG=`cat $FICHERO.log`
if [ $NUMROWS -gt 0 ] then echo “Backup correcto” else echo “Backup incorrecto” ssmtp cuenta1@gpsos.es cuenta2@gpsos.es <<EOF From: avisos@gpsos.es Subject: Export full con errores!!!
$FICHERO $LOG EOF
fi
En el script hacemos un export full y dejamos el log del mismo en una ruta distinta. Para comprobar si el export está correcto contamos el numero de veces que aparece “Export terminated successfully” en el fichero de log. Este valor se guarda en NUMROWS y posteriomente en el if vemos el resultado del mismo. Se manda correo en el caso de error, pero se puede incluir también cuando es correcto si queremos estar informado del resultado del mismo. También mandamos el log completo para su revisión, lo almacenamos en la variable LOG=`cat $FICHERO.log` y luego se manda en el correo. Para revisar el resultado de un comando de rman en lugar de revisar el log, miramos el estado de salida del comando. Un ejemplo del mismo es el siguiente:#!/bin/bash
#set variables NOW=$(date +”%Y%m%d”) TOMORROW=$(date –date=”+1 day” +”%Y%m%d”)
# User specific environment and startup programs
ORACLE_HOME=/opt/oracle/12.1/database export ORACLE_HOME
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:. export PATH
export ORACLE_SID=TEST1 export NLS_LANG=SPANISH_SPAIN.WE8MSWIN1252
PATH=$PATH:/usr/sbin export PATH FICHERO=/mnt/backup/rman_arch_TEST_`date +”%Y%m%d”`
mkdir /mnt/backup/$NOW 2>/dev/null mkdir /mnt/backup/$TOMORROW 2>/dev/null rman target / catalog rman/rmantest1@rman @$HOME/scripts/backup/backup_arch.rman log $FICHERO.log OUT=$?
LOG=`cat $FICHERO.log`
if [ $OUT -eq 0 ];then echo “Backup correcto” else echo “Backup incorrecto” ssmtp cuenta1@gpsos.es cuenta2@gpsos.es <<EOF From: avisos@gpsos.es Subject: RMAN arch con errores!!!
$FICHERO $LOG EOF fi
En este caso capturamos la salida con OUT=$?. En el if comprobamos si es 0 (correcto) o hay errores. Dependiendo de la salida mandamos correo o no. Espero que os sea de utilidad y nos vemos en siguientes artículos. Un saludo. Equipo Linux.