#! /bin/sh #--------------------------------------------------------------- # Fichier : ctrl_exp_db.sh # Auteur : E .Meylan / RR # Date : 14.02.96 # Modifié : 29.01.04 G.Steulet # But : Controle si les fichiers log des exports ne comportent pas # d'erreurs. # Usage : A integrer dans crontab, lancer 1x par jour après exports #----------------------------------------------------------------- # Procedure : send_dba_mail # : Envoi d'un message parametre au dba #----------------------------------------------------------------- send_dba_mail(){ msg="Instance Oracle " msg=$msg$1 mtype=$2 muser="gregory.steulet@cpln.ch" mailx -s "$msg" $muser < FIN_S } #------------------------------------------------------------------ # Procedure : ctrl_rep_log # : Controle du repertoire courant, de l'existance de fichier trace #------------------------------------------------------------------ ctrl_rep_log(){ jour_de_semaine=`date +%w` fichier=export_$jour_de_semaine.log if [ `ls -l $fichier 2> /dev/null | wc -l` -gt 0 ] then ls $fichier | while read trfile do # Si le fichier n'a pas la ligne 'Export terminated successfully without warnings.' # on averti le DBA if [ `egrep -c "(Export terminated successfully without warnings.)|(Exception signal)" ${trfile}` -eq 0 ] then send_dba_mail "error Dir:${exp_dir} File: ${trfile}" else echo $trfile #rm -f $trfile # je ne les efface pas fi done fi } #------------------------------------------------------------------ actual_location=`pwd` echo $fichier #exp_dir=/u01/app/oracle/admin exp_dir=/safe/oracle ORACLE_SID=es21 cd $exp_dir/es21/exp ctrl_rep_log ORACLE_SID=es22 cd $exp_dir/es22/exp ctrl_rep_log ORACLE_SID=es23 cd $exp_dir/es23/exp ctrl_rep_log ORACLE_SID=es25 cd $exp_dir/es25/exp ctrl_rep_log ORACLE_SID=es28 cd $exp_dir/es28/exp ctrl_rep_log cd $actual_location