Ich bin auf der Suche nach einem Skript, um die Protokolldateien durch das Skript, grep für eine Zeichenfolge, dann mailx, wenn die Zeichenfolge gefunden wird, zu suchen.bash grep Log-Datei für Zeichenfolge dann mailx
Aus dem folgenden Skript möchte ich nur die Protokolle senden, wo Zeilen zurückgegeben werden, anstatt alle Protokolle. Über 35 Datenbanken täglich ist ein Protokoll.
Pseudocode:
if grep TOTAL $REPORTS/${ORACLE_SID}_Tablespace.log
then
mail -s "$ORACLE_SID Tablespace Alert" `cat $ORAMAIL/dba_list` < \
$REPORTS/${ORACLE_SID}_Tablespace.log
fi
begin script:
. /u01/app/oracle/oraconfig/Oracle.env.new.vars
echo "$0 execution started "`date`
for NAME in `cat $ORACONFIG/dbname.list`
do
ORACLE_SID=$NAME
export ORACLE_SID
sqlplus '/ as sysdba' <<EOF > $REPORTS/${ORACLE_SID}_Tablespace.log 2>&1
@$TOOLS/chk_tablespace.sql
EOF
TODAY=`date +%Y-%m-%d`
mail -s "$ORACLE_SID Tablespace Alert" `cat $ORAMAIL/dba_list` < \
$REPORTS/${ORACLE_SID}_Tablespace.log
done
echo "$0 execution completed "`date`
Sie scheinen SO neu zu sein. Nachdem Sie die Antworten getestet haben, wenn Sie der Meinung sind, dass eine Antwort das Problem gelöst hat, markieren Sie sie bitte als "akzeptiert", indem Sie auf das grüne Häkchen klicken. Dies hilft, den Fokus auf ältere SO-Fragen zu legen, die immer noch keine Antworten haben. –