PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Logfile Überwachung mit find



bob_morane77
24.02.06, 15:52
hi,

ich habe hier zu hause nen kleinen server, der immer nachts logfiles von einem server aus dem rechenzentrum zieht. nun wollte ich absichern, das wenn was schief geht, er ne mail schickt und alle arbeitsschritte anhält.

meine idee, schaue ob ein *.log 0kb ist. wenn ja, mail+abbruch, wenn nein,
dann weitermachen.

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH

if find /*.log -empty
then
echo "Es gibt ein 0 Byte Logfile" | mail -s "Reporting Fehler" test@test.de
exit 0
fi
echo "Alles I.O." | mail -s "Reporting I.O." test@test.de

exit 0


Resultat:
wenn es keine *.log gibt macht er es richtig.
wenn es eine 0kb datei macht, macht er es richtig.
gibt es aber mehrere *.log, die nicht 0kb sind,
beendert er trotzdem die schleife.

scheinbar ist für ihn schon *.log = true.

habt ihr ne idee ?

thx

carstenj
24.02.06, 18:46
Hi,

schleife
das ist dein Problem, denn du hast gar keine Schleife, sondern nur eine If-Verzweigung.

While, for, foreach etc. sind Schleifen. Schau da mal nach, dann solltest du auch auf die Lösung kommen.

Kleiner Tipp:

#!/bin/sh

for datei in `ls *.php`
do
echo Dateiname:$datei
done

bob_morane77
24.02.06, 23:39
nun hab ichs geschnallt.

falls es interessiert, so geht es:

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH

for datei in `find /*.log -empty`
do
echo "Es gibt ein 0 Byte Logfile" | mail -s "Reporting Fehler" test@test.de
exit 0
done
echo "Alles I.O." | mail -s "Reporting I.O." test@test.de
exit 0