#!/bin/bash # Schwellenwerte in Megabyte WARN=1000 # Beispiel: 1000 MB CRIT=2000 # Beispiel: 2000 MB COUNT_PROC=20 #Anzahl der prozesse die ausgeben werden sollen -1 maximal 20 #diese werden nach speicherverbrauch sortiert #Programm Variablen, bitte nicht verändern #Laufvariable i=0 #da bei null angefangen wird zu zählen-proccount um einen dezimieren COUNT_PROC=$((COUNT_PROC-1)) # Anfang der Ausgabe für den Service output="P \"Speicherverbrauch der Prozesse in MB\" " # ps Befehl, um Prozessname und Speicherverbrauch (RSS) zu bekommen while IFS= read -r line; do memory=$(echo $line | awk '{print $1}') #teilen durch 1024 memory=$((memory/1000)) process=$(echo $line | awk '{print $2}' | sed 's/[^a-zA-Z0-9]/_/g') # Hinzufügen der Performance-Daten für jeden Prozess zum Output printf -v format_i "%02d" $i output+="NR-$format_i-${process}=${memory};${WARN};${CRIT}|" if [ $i == $COUNT_PROC ] then break fi if [ $COUNT_PROC > -1 ] then i=$((i+1)) fi done <<< $(ps -eo rss,comm --sort=-rss | awk 'NR>1') #letztes semikolon entfernen output="${output%?}" #entferne , aus dem string output=${output//[,]/} #enterfne leerzeichnen aus dem string output=${output//[_]/} # Ausgabe des gesammelten Outputs echo "$output"