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

09.07.2005, 21:49

shell script für log überwachung..

Hallo forum.

Ich bin auf der suche nach einem shel script das ein logfile permanet überwacht in
abständen von 10 sec. und auf bestimte ereignisse achtet.
z.b error, down, error 15 etc..

tritt ein soches ereigniss im logfile auf, auf soll der passende (service123) gesucht und gekillt werden. anschliessend den entsprechenden service wieder starten.
Ist kein prozess active einfach den service starten.

Leider habe ich keine ahnung von scripting und wäre froh wenn sich jemand melden würde, der mir weiter hilft.

Variablen
LOG_FILE=/var/log/spider.log
ARGUMENT_FILTER=text1 text2 text3 #filter für grep oder tail
PROCESS_NAME=Spider
SERVICE_START=/usr/local/service1 -c /usr/local/config.conf -b
STOP_FOR=5


Kann mir da bitte einer weiterhelfen?

Darts

Up the Irons!

  • »Darts« ist männlich

Beiträge: 614

Wohnort: Braunschweig

Beruf: Schüler

  • Nachricht senden

2

09.07.2005, 22:31

Die Antwort gibts du dir ja quasi selbst
#filter für grep oder tail

Mit grep z.B. ist das ja kein großes Problem mehr, oder willst du einen kompletten Script haben?
You are registered Linux user #393303.

3

09.07.2005, 22:38

Lieber ein kompletes script.

Den ich verstehe das scripting nicht und suche mich schon den ganzen tag mit google zu tode um cod snipsel zusammen zu bauen. Aberdas wird eben nicht, wenn man die matherie nicht versteht.

4

10.07.2005, 00:23

Ich stosse hier schon an und komme nicht weiter.

ich erhalte nur die ausgabe von tail.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
LOG_FILE=/var/log/auth.log
Filter1=psssword
Filter2=illegal                                 
Filter3=Failed                                  
PROCESS_NAME=httpd                              
SERVICE_START=/usr/local/service1 -c /usr/local/config.conf -b
STOP_FOR=5                                      
                                                
                                                
#tail -f $LOG_FILE | grep -C $search > $done_log
tail -f -n 2 /var/log/auth.log | grep -E "($filter1 |$filter2 | $filter3)" $found

while [ `grep -E "($filter1 |$filter2 | $filter3)" $found` = 1 ]
   do                                           
      echo "habs gefunden"
        sleep $STOP_FOR
    done                                       

if [ "`cat $found`" = 1 ]
   then
   ps ax | grep $PROCESS_NAME > $p_list
echo $p_list
   #kill -9 $p_list
   #$SERVICE_START
exit
fi

Thema bewerten