Prozesse tcpdump überwachen und ggf. neustarten

VMB

Neuer User
Mitglied seit
14 Sep 2010
Beiträge
55
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich weiß, dass es schon Threads zu ähnlichen Themen gibt, aber ich komme trotzdem nicht weiter. Es handelt sich lediglich um einen Einzeiler der ins rc.custom soll und den mir hier sicherlich jemand verraten kann.

Der Prozess wird zunächst über rc.custom ausgeführt:
tcpdump -i dsl -w /var/media/ftp/uStor01/dsl.dump

...und soll dann überwacht werden (irgendwie so)
* * * * * ps w | grep tcpdump | grep -v grep || tcpdump -i dsl -w /var/media/ftp/uStor01/dsl.dump

Ich möchte, dass der Prozess dann neugestartet wird, wenn er nicht mehr läuft.


Jetzt aber bitte noch das aktuelle datum einfügen (irgendwie so)

* * * * * ps w | grep tcpdump | grep -v grep || "tcpdump -i dsl -w /var/media/ftp/uStor01/dsl" + getDate () + ".dump"

Danke
 
Probiers mal hiermit:
Code:
#!/bin/sh
while true 
do 
  pidof tcpdump
  if [ $? -eq 1 ]
   then
    d=`date +%Y-%m-%d`
    echo "Starte tcpdump"
    tcpdump -i dsl -w /var/media/ftp/uStor01/dsl-$d.dump &
  fi  
  sleep 10
done
 
Warum so kompliziert, wenn man einfach warten kann darauf, daß der Prozess beendet wird? Die andere Frage ist, warum würde der Prozess beendet werden?
Code:
while true; do
  tcpdump -i dsl -w /var/media/ftp/uStor01/dsl.dump
done
Ggf. hinter das done ein "&" anhängen.
Sinnvollerweise würde man nicht den gleichen Namen immer wieder verwenden, weil dann die Datei überschrieben wird.
Also in der Art:
Code:
while true; do
  tcpdump -i dsl -w /var/media/ftp/uStor01/dsl.dump.$(date +%Y%m%d-%H%M%S)
done &
 
Probiers mal hiermit:
Code:
#!/bin/sh
while true 
do 
  pidof tcpdump
  if [ $? -eq 1 ]
   then
    d=`date +%Y-%m-%d`
    echo "Starte tcpdump"
    tcpdump -i dsl -w /var/media/ftp/uStor01/dsl-$d.dump &
  fi  
  sleep 10
done

Kann ich dies in das rc.custom kopieren? Ja oder?
 
Sollte er aber nicht
 
Was sollte ich denn machen?
 
Das einfachste ist das zweite Beispiel aus Beitrag #3.

Falls es damit Probleme gibt, oder auch vorsichtshalber, kannst Du noch die Ein/Ausgabe umlenken:
Code:
while true; do
  tcpdump -i dsl -w /var/media/ftp/uStor01/dsl.dump.$(date +%Y%m%d-%H%M%S)
done < /dev/null > /dev/null 2> /dev/null &
Das kannst Du direkt in rc.custom schreiben, oder in ein anderes Skript, das von rc.custom aufgerufen wird.
 
Das einfachste ist das zweite Beispiel aus Beitrag #3.

Falls es damit Probleme gibt, oder auch vorsichtshalber, kannst Du noch die Ein/Ausgabe umlenken:
Code:
while true; do
  tcpdump -i dsl -w /var/media/ftp/uStor01/dsl.dump.$(date +%Y%m%d-%H%M%S)
done < /dev/null > /dev/null 2> /dev/null &
Das kannst Du direkt in rc.custom schreiben, oder in ein anderes Skript, das von rc.custom aufgerufen wird.
Vielen Dank.
Wohin wird das denn ausgegeben? Entschuldige bitte, aber ich bin mit Freetz und Linux nicht sonderlich bewandert. (.Net Entwickler)
 
Welche Fehlermeldung denn?

Falls es damit Probleme gibt, oder auch vorsichtshalber, kannst Du noch die Ein/Ausgabe umlenken:

Code:
while true; do
tcpdump -i dsl -w /var/media/ftp/uStor01/dsl.dump.$(date +%Y%m%d-%H%M%S)
done < /dev/null > /dev/null 2> /dev/null &Das kannst Du direkt in rc.custom schreiben, oder in ein anderes Skript, das von rc.custom aufgerufen wird.
 
@sf3978 Danke!
@RalfFriedl

Was bedeutet denn bitte diese Zeile: done < /dev/null > /dev/null 2> /dev/null &
Wofür steht < /dev/null > /dev/null 2> /dev/null & ?
Warum wo die < und warum 2 und warum & ?

Ich habe den Artikel von sf3978 gelesen, allerdings ist mir die Zusammensetzung noch nicht ganz klar.

Vielen Dank für eure Geduld.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.