Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Script: Prozess Uptime ermitteln

  1. #1
    Registrierter Benutzer Avatar von UzumakiNaruto
    Registriert seit
    Feb 2008
    Ort
    Gifhorn
    Beiträge
    281

    [gelöst] Script: Prozess Uptime ermitteln

    Hallo Zusammen,

    in einem Script möchte ich die Prozess-Uptime ermitteln und dabei den Prozess-Namen aus einer Konfig Datei auslesen.
    Es gibt auch den Fall das es 2 Prozesse gibt, deshalb gibt es ein Array.

    Code:
    for item in ${processlist[*]}
    	do
    		# Für um den ersten Buchstaben [] hinzu
    		p=2
    		process=$item
    		process="[${process}"
    		process="${process:0:p}]${process:p}"
    
    		# Testausgabe (sieht in der Shell identisch aus
    		echo -e "[d]ovecot"
    		echo -e "$process"
    
    		ps -o lstart "$(ps -ef | awk '/[d]ovecot/{print $2}')" | sed -n 2p #funktioniert
    		ps -o lstart "$(ps -ef | awk '/$process/{print $2}')" | sed -n 2p #funktioniert nicht
    		ps -o lstart "$(ps -ef | awk '/$(process)/{print $2}')" | sed -n 2p #funktioniert nicht		
    	done
    Ausgabe:
    Code:
    error: garbage option
    
    Usage:
     ps [options]
    
     Try 'ps --help <simple|list|output|threads|misc|all>'
      or 'ps --help <s|l|o|t|m|a>'
     for additional help text.
    
    For more details see ps(1).
    Hat jmd. eine Idee von euch wie ich das lösen kann?
    Geändert von UzumakiNaruto (28.03.18 um 15:33 Uhr) Grund: gelöst

  2. #2
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.113
    pgrep ist dein Freund.

    Code:
    wanted_process=/usr/sbin/sshd
    ps -o lstart   $(pgrep -f "$wanted_process")
    pgrep nimmt es Dir auch ab [d]as so schreiben zu müssen.

  3. #3
    Registrierter Benutzer Avatar von UzumakiNaruto
    Registriert seit
    Feb 2008
    Ort
    Gifhorn
    Beiträge
    281
    Super, vielen Dank.
    Code:
    echo -e "Container"
    for item in ${processlist[*]}
    do
    	ServiceUP=`ps -o lstart $(pgrep -f "$item") | sed -n 2p`
    	echo -e "\t"$item" \t" $ServiceUP		
    done

  4. #4
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.113
    Nachtrag

    Den sed kann man sich auch sparen:

    Code:
    ps -o lstart --no-headers   $( pgrep -f "$wanted_process" )
    Die $( ... ) statt ` ... ` verwende ich auch gerne, da bei den Backticks die Verwechslungsgefahr mit anderen Quotes so gross ist. Ausserdem kann man $( ... ) verschachtelt verwenden. Das geht bei den Backticks IMHO nur mit Zusatzquoting, was das ganze sehr hässlich macht.

Ähnliche Themen

  1. per Script day_of_year ermitteln
    Von saxandl im Forum Linux Allgemein
    Antworten: 1
    Letzter Beitrag: 23.02.13, 09:13
  2. Runlevel im script ermitteln??
    Von baltasar im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 16.06.06, 18:56
  3. Aktuelle Distro per script ermitteln
    Von goldenboy im Forum Linux Allgemein
    Antworten: 16
    Letzter Beitrag: 20.06.05, 15:11
  4. Systemzeit in einem Bash-Script ermitteln
    Von Eagle im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 10.10.02, 10:04
  5. Name des Versenders aus Email-Header mit Shell-Script ermitteln
    Von detonation997 im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 25.09.02, 17:42

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •