Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- IFS='|'
- processes=${processes:="apache2|transmission-da|Plex New Transc|Plex Media Serv|Plex DLNA Serve|python|smbd|munin-graph|tmux"}
- graphorder=$(
- graphvar=$(
- procgraph=$( for proc in $processes; do
- echo -n $proc","
- done)
- echo $procgraph | awk -F, '{gsub(/[ -]/, "", $0); print$0}'
- )
- echo $graphvar | awk '{gsub(/[,]/, " ",$0); print$0}')
- if [ "$1" = "config" ]; then
- NCPU=$(egrep '^cpu[0-9]+ ' /proc/stat | wc -l)
- PERCENT=$(($NCPU * 100))
- if [ "$scaleto100" = "yes" ]; then
- graphlimit=100
- else
- graphlimit=$PERCENT
- fi
- echo 'graph_scale no'
- echo 'graph_title Process CPU utilisation'
- echo 'graph_order' $graphorder
- echo 'graph_vlabel %'
- echo 'graph_args --base 1000 -r --lower-limit 0 --upper-limit' $graphlimit
- echo 'graph_category processes'
- echo 'graph_info This graph shows the cpu usage of multiple processes'
- proclist=$( for proc in $processes; do
- echo "$proc.$proc"
- done)
- #get proc name + .label
- labels=$(echo $proclist | awk -F. '{gsub(/[ -]/, "", $1);gsub(/[ -]/, "_", $2); print$1".label "$2} ')
- echo $labels | sed 's/^[^A-Za-z_]/_/'
- #get proc name + .info
- infos=$(echo $proclist | awk -F. '{gsub(/[ -]/, "", $1);gsub(/[ -]/, "_",$2); print$1".info "$2" process"} ')
- echo $infos | sed 's/^[^A-Za-z_]/_/'
- #get procname + .draw + type
- draws=$( for x in $processes; do
- firstproc=$(echo $proclist | awk -F. 'FNR == 1 {gsub(/[ -]/, "", $1); print$1 } ')
- if [ "$x" = "$firstproc" ]
- then
- echo $x | awk -F. '{gsub(/[ -]/, "", $1); print$1".draw AREA"} '
- else
- echo $x | awk -F. '{gsub(/[ -]/, "", $1); print$1".draw STACK"} '
- fi
- done)
- echo $draws | sed 's/^[^A-Za-z_]/_/'
- else
- TMPFILE=$(mktemp -t top.XXXXXXXXXX) && {
- top -b -n2 > $TMPFILE
- topcount=$(awk 'END{print NR}' $TMPFILE)
- tophalf=$(expr $topcount / 2)
- toplist=$(tail -n$tophalf $TMPFILE)
- proc_value=$( for proc in $processes; do
- if grep "$proc" $TMPFILE; then
- :
- else
- echo "0 0 0 0 0 0 0 0 0.0 0 0 $proc"
- fi
- done)
- echo $proc_value | awk '{gsub(/[ -]/, "", $12);gsub(/[ -]/, "", $13);gsub(/[ -]/, "", $14); print $12$13$14 ".value " $9}' | awk 'NF {a[$1]+=$2*1}END{for (x in a)printf "%s %.1f\n", x,a[x]}' | sed 's/^[^A-Za-z_]/_/'
- rm -f $TMPFILE
- }
- fi
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement