Parsing the output from top


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parsing the output from top
# 1  
Old 08-31-2011
Parsing the output from top

Guys can you help me fix this parse error.

Here's my script.
Code:
#!/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 -d, -f1)"

# compare it with last usage
RESULT=$(echo "$TOP > $NOTIFY" | bc)

# if load >= 80.0% create a file /home/scripts/loadavg.txt

if [ "$RESULT" = "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" ]; then
        echo $RESULT "cpu usage" >>  /home/scripts/loadavg.txt

This will output the cpu usage then compare on the notify now i'm getting this error

Code:
-bash-3.00$ sh -x cpu 
+ 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'
++ top -b -n2 -d 00.20
++ grep Cpu
++ tail -1
++ awk -F : '{ print $2 }'
++ cut -d, -f1
+ TOP='  6.7% us'
++ echo '  6.7% us > 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'
++ bc
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
(standard_in) 1: parse error
+ RESULT=
+ '[' '' = '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' ']'

Thanks in advance.

Last edited by radoulov; 08-31-2011 at 07:21 AM.. Reason: Please use code tags for code and data samples, thank you
# 2  
Old 08-31-2011
The parse error comes from "bc". The script executes
Code:
echo '  6.7% us > 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' | bc

which is not a correct input for "bc". On the other hand it is not quite clear, what you would like to achieve with the script. The field you extract from "top" output has little to do with load average.
This User Gave Thanks to hfreyer For This Post:
# 3  
Old 08-31-2011
If you are on linux it's better to see load average from /proc/loadavg. You can do it something like this:
Code:
while true; do
  loadavg=`cat /proc/loadavg`
  sleep 1 # or some other time
  # do something with $loadavg
done

See man 5 proc
This User Gave Thanks to yazu For This Post:
# 4  
Old 09-01-2011
If your not on linux try looking at uptime for a quick summary of load, or sar -u 2 1
This User Gave Thanks to Chubler_XL For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

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... (5 Replies)
Discussion started by: Prateek007
5 Replies

2. 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

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