Parsing of TOP output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parsing of TOP output
# 1  
Old 08-13-2012
Question Parsing of TOP output

Hi ,
i am trying to set up an alert, when CPU usage (0.2%us in below output) is more than 40%
top | head | grep '^Cpu'
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.1%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st

using CUT, i pulled the value 0.2 and assigned to CPU (variable)

CPU=$(expr `top | head -10 | grep "Cpu" | cut -d ' ' -f3 | cut -d '%' -f1`)
if [ ${CPU} -gt 1 ]
then
echo "HIGH CPU USAGE"
fi

this gives me error
tst.sh: line 3: [[: 0.2: syntax error: invalid arithmetic operator (error token is ".2")

Please advise Smilie

and no want to compare with 40.
# 2  
Old 08-13-2012
As far as I know, Bash can't handle floating point calculations, Look up "bc", for example look at this link.
Check out: Bash Math | HACKTUX
# 3  
Old 08-13-2012
Only the ksh93 and zsh shells handle floating point.
# 4  
Old 08-14-2012
I found a cool top trick, but I can't post a URL until 5 posts
# 5  
Old 08-14-2012
try this
Code:
CPU=$(expr `top | head -10 | grep "Cpu" | cut -d ' ' -f3 | cut -d '%' -f1`)
let x=$CPU*10
if [ ${x} -gt 10 ] 
then 
echo "HIGH CPU USAGE" 
fi

change multiplication factor if you digits after decimal point is more than 1
# 6  
Old 08-14-2012
top is an interactive program and its output may be full of escape sequences. Its output really isn't meant to be parsed or even saved.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

how to format ssh top output

Hello; Am trying to generate runaway proc report using ssh thusly: =================== ssh -t -t $BOX 'TERMINAL="vt100" top -d1 -h -n 10' >> $FILE . . cat $FILE | mail -s "Latest Top `date`" $MAIL_TO ==================== But the output to e-mail comes out rather garbled .. Any ideas... (1 Reply)
Discussion started by: delphys
1 Replies

2. Shell Programming and Scripting

Parsing the output from top

Guys can you help me fix this parse error. Here's my script. #!/bin/bash # Set up limit below NOTIFY="6.0% us 6.1% us 6.2% us 6.3% us 6.5% us 6.6% us 6.7% us 6.8% us 6.9% us 7.0% us" # CPU Usage every minute TOP="$(top -b -n2 -d 00.20 |grep Cpu|tail -1 | awk -F ":" '{ print $2 }' | cut... (3 Replies)
Discussion started by: redtred
3 Replies

3. Shell Programming and Scripting

Parsing out the first (top) data lines of each category

Hi All, I need some help in parsing out the first (top) data lines of each category (categories are based on the first column a, b, c, d, e.( see example file below) from a big file a dfg 3 6 8 9 a fgh 5 7 0 9 a gkl 5 2 4 7 a glo 7 0 1 5 b ghj 9 0 4 2 b mkl 7 8 0 5 b jkl 9 0 4 5 c jkl 2... (1 Reply)
Discussion started by: Lucky Ali
1 Replies

4. Solaris

top output and swap -s output are differing

Solaris experts, Am struggling, and wondering for the past more than one week that, how to calculate the total available and used memory/swap space. Finally installed and used top & got some understanding, but while cross-checking, there are mismatches. Main Memory top o/p - 2GB... (7 Replies)
Discussion started by: thegeek
7 Replies

5. Shell Programming and Scripting

Understanding the output of TOP

ok, so I have a script im running on a linux box that uses "egrep" a lot. now, when i run this script, i check the TOP to see how much system resource it is using. the "top" command gives the following output: last pid: 25384; load avg: 1.06, 1.04, 0.76; up 351+06:30:24 ... (0 Replies)
Discussion started by: SkySmart
0 Replies

6. Solaris

Output top to file

Hi, I've installed SMCtop on to a Solaris 9 sparc server and I am trying to capture the output of top to a file without success. The version of top I have installed is top-3.6.1-sol9-sparc-local.gz. All my attempts are below. # /usr/local/bin/top -d 5 -f /tmp/top.out... (3 Replies)
Discussion started by: sparcman
3 Replies

7. Shell Programming and Scripting

top output for six processes with the same name, output changed from column to row

Hi, I have a system under test, and I use a script that does a ps. The output, is in the following format, it's basically the timestamp, followed by the rss and vsize. 09:03:57 68404 183656 68312 181944 69860 217360 67536 182564 69072 183172 69032 199276 09:04:27 68752 183292 70000 189020... (5 Replies)
Discussion started by: Bloke
5 Replies

8. Shell Programming and Scripting

capturing output from top and format output

Hi all, I'd like to capture the output from the 'top' command to monitor my CPU and Mem utilisation.Currently my command isecho date `top -b -n1 | grep -e Cpu -e Mem` I get the output in 3 separate lines.Tue Feb 24 15:00:03 Cpu(s): 3.4% us, 8.5% sy .. .. Mem: 1011480k total, 226928k used, ....... (4 Replies)
Discussion started by: new2ss
4 Replies

9. UNIX for Dummies Questions & Answers

Merging the PS and TOP output

Hey guys, I'm trying to merge the output from the ps and top commands; since I need the full command used (only showed in the ps), and the cpu usage with some decimal numbers (i.e.: 0.05%, only showed in top). After exporting to different files, I was thinking of doing an egrep with the... (0 Replies)
Discussion started by: EnioMarques
0 Replies

10. UNIX for Advanced & Expert Users

top output

Hi all, below is the output of my 'top' Tasks: 91 total, 2 running, 89 sleeping, 0 stopped, 0 zombie Cpu(s): 3.9% us, 20.5% sy, 0.0% ni, 75.6% id, 0.0% wa, 0.0% hi, 0.0% si Can someone tell me what does us, sy,ni,id,wa,hi,si stands stand for? (4 Replies)
Discussion started by: new2ss
4 Replies
Login or Register to Ask a Question

Featured Tech Videos