T
Tommy_WY
Mitglied
hi @ all,
ich habe folgendes problem.
in einem script (ksh unter aix) soll eine Datei error_messages.txt als array verwendet werden. in dieser datei werden fortlaufend neue auftretende fehlermeldungen eingetragen.
mit hilfe dieser datei sollen die in einem log-verzeichnis abgelegten logfiles nach den fehlermeldungen aus der datei error_messages.txt durchsucht werden. das script soll per mail melden, wenn es eine der errors in der gerade durchsuchten log-datei findet.
soweit funzt auch alles, bis auf die kleine tatsache, dass anscheinend die varibale, die den error enthält, von grep völlig ignoriert wird.
anscheinend sucht grep nach dem variablennamen und nicht nach dem inhalt der variablen.
das ganze sieht in etwa so aus, einige ausgaben dienen nur dem debug und kommen in der endversion raus. Die schleifen werden abgearbeitet, WD ist das workdir, LOG ist das logdir. Wenn ein key-word gefunden wird, soll die zeile mit dem key-word nach ${WD}/${logarray[$a]}.list geschrieben werden.
wie gesagt, das klappt auch alles nur eben das grep anscheinend nicht
in der version ist $errorarray[$i] gequotet --> klappt auch nicht, ohne auch nicht.
für ne idee wäre ich wirklich dankbar.
Code-Tag ist verwendet.
Hat jemand ne Idee????
Servus
Tommy
ich habe folgendes problem.
in einem script (ksh unter aix) soll eine Datei error_messages.txt als array verwendet werden. in dieser datei werden fortlaufend neue auftretende fehlermeldungen eingetragen.
mit hilfe dieser datei sollen die in einem log-verzeichnis abgelegten logfiles nach den fehlermeldungen aus der datei error_messages.txt durchsucht werden. das script soll per mail melden, wenn es eine der errors in der gerade durchsuchten log-datei findet.
soweit funzt auch alles, bis auf die kleine tatsache, dass anscheinend die varibale, die den error enthält, von grep völlig ignoriert wird.
anscheinend sucht grep nach dem variablennamen und nicht nach dem inhalt der variablen.
das ganze sieht in etwa so aus, einige ausgaben dienen nur dem debug und kommen in der endversion raus. Die schleifen werden abgearbeitet, WD ist das workdir, LOG ist das logdir. Wenn ein key-word gefunden wird, soll die zeile mit dem key-word nach ${WD}/${logarray[$a]}.list geschrieben werden.
wie gesagt, das klappt auch alles nur eben das grep anscheinend nicht
in der version ist $errorarray[$i] gequotet --> klappt auch nicht, ohne auch nicht.
für ne idee wäre ich wirklich dankbar.
Code:
ls > ${WD}/log_list
while read list
do
logarray[a]="$list"
cp ${logarray[$a]} ./log_temp
while read errors
do
errorarray[i]="$errors"
cd ${LOG}
echo ${logarray[$a]}
echo ${errorarray[$i]}
cd log_temp
grep -in '\\${errorarray[\\$i]}' * >> ${WD}/${logarray[$a]}.list
((i=i+1))
done < ${WD}/error_message.txt
rm ${logarray[$a]}
if [ -s "${WD}/${logarray[$a]}.list" ]
then
# Fehlermeldung per Mail verschicken
echo > MAIL
echo " Something is wrong !!!!!" >>MAIL
echo "siehe log-File ${logarray[$a]} !!!!!!!!!!" >>MAIL
echo "Ende der Nachricht" >>MAIL
if [ -n $MAIL2 ]
then
[ -f MAIL ] && cat MAIL | mailx -s " ${logarray[$a]}!!!!!" $MAIL2 <${WD}/${logarray[$a]}.list
fi
fi
rm ${LOG}/MAIL
#rm ${WD}/${logarray[$a]}.list
echo ${a} " vorher"
((a=a+1))
echo ${a} " nachher"
done < ${WD}/log_list
Code-Tag ist verwendet.
Hat jemand ne Idee????
Servus
Tommy
Zuletzt bearbeitet: