2016-05-13 6 views
1

Ich versuche ein Skript zu erstellen, um die aktuelle Anzahl der laufenden Prozesse zu erfassen und wenn diese Zahl über 1000 ist, dann sende mir eine E-Mail. Ich versuche, dies in einem Bash-Skript zu tun, dass ich nur einen Cron-Job verwenden werde, um es zu nennen. Der Code, den ich benutze, ist unten und ich bin mir sicher, dass ich gerade etwas fehl am Platz habe und nur ein anderes Paar Augen brauche.Bash Script, das eine Anzahl laufender Prozesse und dann E-Mails bei einem bestimmten Schwellenwert erhält

PCOUNT=$(cat /proc/loadavg|awk '{print $4}'|awk -F/ '{print $2}') 
if [$PCOUNT > 100]; then 
    mail -s "Process Count" [email protected] 
fi 
+0

http://codereview.stackexchange.com/? – user3159253

+0

"Ihre Frage muss Code enthalten, der bereits korrekt funktioniert" – whiskeywrangler

+0

'awk' kann eine Eingabedatei als Argument verwenden, daher können Sie [UUOC] (http://porkmail.org/era/unix/award) entfernen .html # Katze). Verwenden Sie außerdem 'if ((pcount> 100)); dann ...; fi' stattdessen und lies * Bedingte Blöcke * in [TestAndConditionals] (http://mywiki.wooledge.org/BashGuide/TestsAndConditionals) –

Antwort

0

Nachdem eine Menge von Versuch und Irrtum ich endlich eine Lösung gefunden. Ich nahm am Ende die Ausgabe der awk-Anweisung und schrieb sie in eine Datei. Ich cat dann die Datei und sende die Ausgabe an die Mail.

PCOUNT=$(awk -F" |/" '{print $5}' /proc/loadavg) 
if ((PCOUNT>1000)); then 
    echo "Number of Running Processes is" $PCOUNT >>/tmp/mail.txt 
    cat /tmp/mail.txt | mail -s "Number of processes is rising" [email protected] 
fi 
0

Ihr Kontext ist in Ihrer if Aussage falsch. Versuchen Sie (()) statt [] auf if wie unten dargestellt:

PCOUNT=$(cat /proc/loadavg|awk '{print $4}'|awk -F/ '{print $2}') 
if (($PCOUNT > 100)); then 
    mail -s "Process Count" [email protected] 
fi 

HINWEIS: Ich habe nicht mail Setup auf meinem System so konnte ich den mail Befehl nicht überprüfen.

0
  • Sie awk

    awk -F kann abgeholzt "| /" '{print $ 5}'/proc/loadavg

  • wenn Bedingung

    [$ PCOUNT -ge 1000

  • Mail, passieren die $ PCOUNT

    mail -s „Process Graf: $ PCOUNT“

IMHO, wenn dies für die Warnung ist, warum nicht Sie versuchen, Nagios-Plugin