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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting top output for six processes with the same name, output changed from column to row
# 1  
Old 05-27-2009
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.

PHP Code:
09:03:57 68404 183656 68312 181944 69860 217360 67536 182564 69072 183172 69032 199276
09
:04:27 68752 183292 70000 189020 70472 241000 67536 182564 69072 183172 69292 204792
09
:04:57 68708 183292 68816 181880 68588 183608 67868 188080 69788 199328 69520 212672
09
:05:27 68708 183292 68204 181880 68540 183608 68176 196092 70012 196936 69860 215868
09
:05:57 68708 183292 68204 181880 68540 183608 68344 198456 70664 208388 69116 202276
09
:06:27 68708 183292 68204 181880 68540 183608 67488 182500 68964 183020 68228 181000
09
:06:57 68708 183292 68204 181880 68540 183608 67488 182500 68964 183020 68228 181000
09
:07:28 68708 183292 68204 181880 68540 183608 67488 182500 68964 183020 68228 181000
09
:07:58 68708 183292 68204 181880 68540 183608 67488 182500 68964 183020 68228 181000 
My question is this...how do I do the same, but for top,
I really want to track the cpu usage of these 6 processes with the same name, and spit them to a file, every 30s, in the same format as above, i.e. timestamp process1CPU process2CPU process3CPU process4CPU process5CPU process6CP

I've tried the following, but it just hangs at the part where it tries to output the results from top, maybe its because it comes out in a column? I need it in row format, so I can easily import to Excel and analyse.

Here's the script
PHP Code:
#!/bin/bash

outputFile=topOutput_`uname -n`
echo 
"Output: " $outputFile

for ((;;)); do
echo 
"for loop";

# X=`top | grep --line-buffered softms | awk '{print $6}'`;
# echo "X: "$X;

echo "currentTime...";
currentTime=`date | awk '{print $4}'`;
echo 
"currentTime: "$currentTime;

echo 
"To file: ";
echo 
$currentTime $X >> $outputFile;

echo 
"foo..."
top grep --line-buffered softms awk '{print $6}'

echo "foo: " $foo
sleep 30s
;

done 
What am I doing wrong? is there an alternative way of achieving this goal?
This is what I'm trying to get as output
PHP Code:
Time       p1cpu%  p2cpu%   p3cpu%  p4cpu%  p5cpu%  p6cpu%  
09:00:00 65          65          65          65          65          65          
09
:00:30 70          70          70          70          70          70          
09
:01:00 70          70          70          70          70          70          
09
:01:30 70          70          70          70          70          70          
09
:02:00 80          80          80          80          80          80          
09
:02:30 65          65          65          65          65          65          
etc
... 
# 2  
Old 05-27-2009
Hi.

The Linux version of top can be set to iterate once in a batch mode with:
Code:
top -n1 -b

perhaps a look at your local man page will help (if top is the problem) ... cheers, drl

Last edited by drl; 05-27-2009 at 11:22 AM.. Reason: Typo
# 3  
Old 05-27-2009
try this

#!/bin/bash

outputFile=topOutput_`uname -n`
echo "Output: " $outputFile

for ((;;));
do
(date +%T | tr "\n" " " && ps -A ux | sort -rn -k 3 | awk 'NR<6 && $3!="%CPU"{printf "%s ",$3} END {printf "\n"}') >> $outputFile
sleep 30
done
# 4  
Old 05-28-2009
This is almost exactly what I'm looking for, but when I run it I get this instead...

PHP Code:
  PID USER      PR  NI %CPU    TIME+  %MEM  VIRT  RES  SHR S COMMAND
 5418 sroot     RT   0   44  26
:25.82  1.4  168m  58m 2844 S softms
 5410 sroot     RT   0   42  32
:32.66  1.4  168m  58m 2844 S softms
 5415 sroot     RT   0   40  25
:14.32  1.4  167m  58m 2844 R softms
 5414 sroot     RT   0   14  25
:27.77  1.4  167m  58m 2844 S softms


[sroot@duqaMX51L-27253 ~]# tail -f !$
tail -f topOutput_duqaMX51L-27253
16
:02:34 49.2 39.7 39.1 37.9 34.4
16
:03:06 49.2 39.8 38.9 37.9 34.1
16
:03:40 49.1 39.8 38.7 38.0 33.8
16
:04:10 49.1 39.8 38.6 38.0 33.5
16
:04:40 49.1 39.8 38.4 38.0 33.3 
The CPU% from top and that reported by ps don't agree

PHP Code:
  PID USER      PR  NI %CPU    TIME+  %MEM  VIRT  RES  SHR S COMMAND
[B5415 sroot     RT   0   47  28:00.65  1.4  167m  58m 2844 S softms
 5410 sroot     RT   0   43  35
:28.54  1.4  168m  58m 2844 S softms
 5418 sroot     RT   0   39  29
:07.74  1.4  168m  58m 2844 S softms
 5414 sroot     RT   0   16  26
:28.96  1.4  167m  58m 2844 S softms[/B]
    
1 sroot     16   0    0   0:01.15  0.0  2120  616  524 S init
    2 sroot     RT   0    0   0
:00.00  0.0     0    0    0 S migration/0
    3 sroot     34  19    0   0
:00.00  0.0     0    0    0 S ksoftirqd/0
    4 sroot     RT   0    0   0
:00.00  0.0     0    0    0 S migration/1
    5 sroot     34  19    0   0
:00.05  0.0     0    0    0 S ksoftirqd/1
    6 sroot     RT   0    0   0
:00.09  0.0     0    0    0 S migration/2
    7 sroot     34  19    0   0
:00.00  0.0     0    0    0 S ksoftirqd/2
    8 sroot     RT   0    0   0
:00.07  0.0     0    0    0 S migration/3
    9 sroot     34  19    0   0
:00.00  0.0     0    0    0 S ksoftirqd/3
   10 sroot     RT   0    0   0
:00.03  0.0     0    0    0 S migration/4
   11 sroot     34  19    0   0
:00.00  0.0     0    0    0 S ksoftirqd/4
   12 sroot     RT   0    0   0
:00.02  0.0     0    0    0 S migration/5
   13 sroot     34  19    0   0
:00.00  0.0     0    0    0 S ksoftirqd/5
   14 sroot     RT   0    0   0
:00.06  0.0     0    0    0 S migration/6
   15 sroot     34  19    0   0
:00.00  0.0     0    0    0 S ksoftirqd/6
   16 sroot     RT   0    0   0
:00.04  0.0     0    0    0 S migration/7
   17 sroot     34  19    0   0
:00.01  0.0     0    0    0 S ksoftirqd/
PHP Code:
sroot     5410 48.4  1.4 172396 59904 ?      Sl   14:58  35:28 /usr/dcb/bin/softms 1 1
sroot     5418 39.8  1.4 172400 59820 
?      Sl   14:58  29:08 /usr/dcb/bin/softms 1 5
sroot     5415 38.2  1.4 171636 59488 
?      Rl   14:58  28:01 /usr/dcb/bin/softms 1 4
sroot     5414 36.1  1.4 171504 59536 
?      Sl   14:58  26:29 /usr/dcb/bin/softms 1 3
sroot     5420 30.1  1.4 171376 59396 
?      Sl   14:58  22:05 /usr/dcb/bin/softms 1 6
sroot     5413 24.3  1.4 171232 59068 
?      Sl   14:58  17:48 /usr/dcb/bin/softms 1 2
sroot     6335  0.0  0.0  3328  496 pts
/3    S+   16:11   0:00 grep -i softms 

Last edited by Bloke; 05-28-2009 at 12:19 PM..
# 5  
Old 06-03-2009
bumpty bump
# 6  
Old 06-04-2009
anyone bump?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Output Row if Third Column is Larger

Hi, I am fairly new to Unix scripting. We are running Solaris 5.10. I have the following question: Assume a text file with one text column, followed by 2 integer columns. How would I generate a script or, preferably, a command that will output the rows in which the value of the third... (6 Replies)
Discussion started by: QZ1
6 Replies

2. Shell Programming and Scripting

Column to row output

Hello All, i have a file with the contents like shown below Name = POLICY1 Selected = 1 Written = 0 Name = POLICY2 Selected = 6 Written = 8 Name = POLICY3 Selected = 4 Written = 26 I want the output to be... (5 Replies)
Discussion started by: vinredmac
5 Replies

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

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

5. Shell Programming and Scripting

convert a column to row output?

Getting tired of cut-and-paste...so I thought I would post a question. how do I change this column output to a single row? from this: # vgdisplay -v /dev/vgeva05 | grep dsk | awk '{print $3}' /dev/dsk/c6t0d5 /dev/dsk/c11t0d5 /dev/dsk/c15t0d5 /dev/dsk/c18t0d5 /dev/dsk/c7t0d5... (8 Replies)
Discussion started by: mr_manny
8 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

Converting line output to column based output

Hi Guys, I am trying to convert a file which has a row based output to a column based output. My original file looks like this: 1 2 3 4 5 6 1 2 3 1 2 3 (8 Replies)
Discussion started by: npatwardhan
8 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