Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

10.12.2007, 10:55

Aktuelle Einträge

Hallo,

ich habe ein Shellskript geschrieben(allgemein gültig), das die Logdatein analysiert, auswertet und die wichtigen Einträge in eine Outputdatei umleitet, die an bestimmte Empfänger versendet wird.

Hier ist mein Skript:

#!/bin/bash
datum2=`date +'%d-%m-%y %H:%M:%S'` #
datum3=`date +'%Y%m%d%H%M%S'`

# purpose: export all variables in ini file to shell variables
# parameter $1 - name of ini file
function readIni
{
awk -F "=" '/^[a-zA-Z].*/ {print "export "$1"="$2}' $1 > bla.tmp
. bla.tmp
rm bla.tmp
for i in `echo $Applications | tr '\,' ' '` ;do
writeIn " " $2_${OutPutFile}
writeIn "------------------------------------------" $2_${OutPutFile}
writeIn "Monitoring der Applikation: $i" $2_${OutPutFile}
writeIn " " $2_${OutPutFile}
writeIn "Date: $datum2 " $2_${OutPutFile}

echo "doit \"\$$i"_b\" \"\$$i"_a\" $2_${OutPutFile}" > tuwas.tmp
. tuwas.tmp
done
rm tuwas.tmp
}

# purpose: writing all results into an outputfile
function doit
{
writeIn "Logfile: $2" $3
writeIn "------------------------------------------" $3
writeIn " " $3
echo "$1 $2 >> $3" > doit.tmp
. doit.tmp
rm doit.tmp
}

#purpose: writing a line into an outputfile
# writeIn <String> <File>
function writeIn
{
echo "$1" >> "$2"
}

readIni mmi.ini $datum3


Dann werde ich das skript via Cronjob täglich um z.B. 10 Uhr ausführen lassen. Nun möchte ich, dass nur das Lesen von Logeinträge seit dem letzten Lesevorgang (also die aktuelle noch nicht gelesene Einträge.) realisieren und in mein Skript einbauen.

Hat Jemend eine Idee, wie das zu realisieren ist?

LG

Imhotep

followed the white rabbit

Beiträge: 1 530

Wohnort: Leipzig

Beruf: Informatiker

  • Nachricht senden

2

11.12.2007, 12:36

Das einfachste wäre doch die Log-Datei vor dem Lesen umzubenennen und eine leere Log-Datei anzu legen, damit hast du gleich noch ein Log-rotate gebaut.

Alternativ einfach die Zeilennummer mitzählen und merken wo du aufgehört hat, dass in eine Datei ablegen und bei nächsten Mal einlesen.

EDIT: oder ein "Lesezeichen" in die Datei einfügen
localhost,
sweet localhost

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Imhotep« (11.12.2007, 12:40)


3

13.12.2007, 09:32

Danke für die Vorschläge. Die Logdatein lasse ich täglich anhand vorgegebenen Suchmuster auswerten.

#Beispielweise basiert auf folgende INI-Datei :
#----------------------------------------------------------------------
#Applications="Refresh1,Refresh2,Refreshrv"
#OutPutFile="monitor.log"
#SendTo="mustermail1@web.de mustermail2@t-mobile.de mustermail3@gmx.net"
#Refresh1_a="/appl/local_0/project/A74RBbf1/20071017/var/*RBL-REFRESH-err.log"
#Refresh1_b="grep -E '(;F;|;WARNING)'"
#Refresh2_a="/appl/local_1/project/A74RBbf3/20071017/var/*RBL-REFRESH-err.log"
#Refresh2_b="grep -E '(;F;|;WARNING)'"
#Refreshrv_a="/appl/local_5/project/A74RBbf9/20071017/var/*RBL-REFRESH-err.log"
#Refreshrv_b="grep -E '(;F;|;WARNING)'"

Daher kommen die ersten 2 Vorschläge schon mal nicht zum Einsatz.
Aber das mit dem Lesezeichen. Also ein Lesezeichen in die Logdatei hineinschreiben (Wie?) und was kommt dann? Außerdem wie ist das ganze in das Skript einzubauen!!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »TheStarter« (13.12.2007, 09:32)


linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

4

13.12.2007, 11:40

du kannst zb mit dem kommando logger einen gezielten eintrag in die logdateien vornehmen. anhand dieses eintrages kann dein script dann erkennen, bis zu welcher stelle die logdatei schon abgesucht wurde.

also zb so

1. mittels logger eine aktuelle markierung in die logdatei einfügen
2. logdatei öffnen und alle einträge zwischen der letzten und der aktuellen markierung abarbeiten.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

Thema bewerten