2016-11-14 3 views
-1

Sun OS 5.8 Bash-Shell-Skript Oracle 10g DatenbankFehler beim Ausführen der egrep auf Solaris

Error 1 the command executing at the time of the error was egrep ORA-\|TNS-\|PLS-\|Error\|PLW-\|IMP-\|EXP-\|RMAN-\|SQL- alert_work.log > alert.err on line 11 

Die "egrep" Linie verläuft erfolgreich, wenn ich es manuell ausführen. Aber in einem Bash-Skript (Cron-Job) es die obigen Fehler bekommt. Hier ist das Skript:

#!/bin/bash 
    SID=$ORACLE_SID 
    DOMAIN=$(uname -n) 
    DBALIST='[email protected]' 
    YESTERDAY=`TZ=CST+24 date +%Y-%m-%d` 

    cd $ORACLE_HOME/admin/$SID/bdump 
    mv alert_${SID}.log alert_work.log 
    touch alert_${SID}.log 
    cat alert_work.log >> alert_${SID}.hist 
    egrep ORA-\|TNS-\|PLS-\|Error\|PLW-\|IMP-\|EXP-\|RMAN-\|SQL- alert_work.log > alert.err 

    if [ `cat alert.err|wc -l` -gt 0 ] 
    then 
      mailx -s "${DOMAIN}.${SID} ALERT LOG ERRORS FOUND" $DBALIST < alert.err.log 
    fi 

    /usr/bin/mv alert_work.log $ORACLE_HOME/admin/$SID/bdump/hist/alert_${SID}_${YESTERDAY}.log 
    exit 
+0

Run ', die in der Shell egrep' und stellen Sie sicher, dass Sie das gleiche in Ihrer crontab verwenden. –

Antwort

0

Ich bin misstrauisch Ihr egrep regulären Ausdruck, die Tatsache, dass Sie es nicht zitiert haben, und erstellen Sie ein Skript aus einem Bash-Skript führt und dann das Skript ausführen, führt mich zu denken dass Sie mit am Ende wird: egrep ORA- | TNS | PLS- | Fehler | PLW- | IMP- | EXP- | RMAN- | SQL- alert_work.log> alert.err das ist nicht das, was Sie bestimmt. Versuchen: egrep 'ORA- \ | TNS \ | PLS- \ | Fehler \ | PLW- \ | IMP- \ | EXP- \ | RMAN- \ | SQL-' alert_work.log> alert.err Das sollte die hinteren Schrägstriche bewahren.