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

#!/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

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

Hi.

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

top -n1 -b

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

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

This is almost exactly what I'm looking for, but when I run it I get this instead...

  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

  PID USER      PR  NI %CPU    TIME+  %MEM  VIRT  RES  SHR S COMMAND
 5415 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
    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/7
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

bumpty bump

anyone bump?