Hi Forum,
I have the below written script that I would like to return values on PRTG, I can successfully display some values, however some don't display because they are not integers I guess.
#!/bin/bash app_name="ListenerService" #App Name app_id=`ps aux | grep $app_name | grep -v grep | awk {'print $2'}` #Process ID app_cpu=`ps aux | grep $app_name | grep -v grep | awk {'print $3'}` #CPU% Used app_mem=`ps aux | grep $app_name | grep -v grep | awk {'print $4'}` #MEM% Used app_res=`ps aux | grep $app_name | grep -v grep | awk {'print $5'}` #RES is the amount of RAM currently used by the process app_virt=`ps aux | grep $app_name | grep -v grep | awk {'print $6'}` #VIRT is the full size of all memory the process is using app_shar=`ps aux | grep $app_name | grep -v grep | awk {'print $7'}` #SHR, Shared Mem size (kb) The amount of shared memory used by a task app_stat=`ps -q $app_id -o state --no-headers` #Process status app_threads=`sudo cat /proc/$app_id/status | grep Threads | grep -v grep | awk {'print $2'}` # Process thread count #Check if the process is still alive and running if [ "$app_stat" != "D" ] && [ "$app_stat" != "Z" ] && [ "$app_stat" != "X" ] then app_stat="UP" else app_stat="DOWN" fi #PRTG Sensor Output result="<?xml version='1.0' encoding='Windows-1252' ?>\n" result+="<prtg>\n" result+=" \t<result>\n" result+=" \t\t<channel>CPU Usage %</channel>\n" result+=" \t\t<value>${app_cpu}</value>\n" result+=" \t\t<unit>custom</unit>\n" result+=" \t\t<customunit>%</customunit>\n" result+=" \t</result>\n" result+=" \t<result>\n" result+=" \t\t<channel>Memory %</channel>\n" result+=" \t\t<value>${app_mem}</value>\n" result+=" \t\t<unit>custom</unit>\n" result+=" \t\t<customunit>%</customunit>\n" result+=" \t</result>\n" result+=" \t<result>\n" result+=" \t\t<channel>Threads</channel>\n" result+=" \t\t<value>${app_threads}</value>\n" result+=" \t\t<unit>custom</unit>\n" result+=" \t\t<customunit>#</customunit>\n" result+=" \t</result>\n" result+=" \t<result>\n" result+=" \t\t<channel>RES(RAM currently in use)</channel>\n" result+=" \t\t<value>${app_res}</value>\n" result+=" \t\t<unit>custom</unit>\n" result+=" \t\t<customunit>KiB</customunit>\n" result+=" \t</result>\n" result+=" \t<result>\n" result+=" \t\t<channel>VIRT(Virtual Memory Size)</channel>\n" result+=" \t\t<value>${app_virt}</value>\n" result+=" \t\t<unit>custom</unit>\n" result+=" \t\t<customunit>KiB</customunit>\n" result+=" \t</result>\n" result+=" \t<result>\n" result+=" \t\t<channel>Status</channel>\n" result+=" \t\t<value>${app_stat}</value>\n" result+=" \t\t<unit>custom</unit>\n" result+=" \t\t<customunit></customunit>\n" result+=" \t</result>\n" result+="</prtg>\n" echo -e $result
The values not displaying are app_cpu and app_mem. Am I doing something wrong on the bash script?
Looking forward to any help on the same.
Add comment