Solved

Unix Shell script using AWK

Posted on 2007-11-15
4
810 Views
Last Modified: 2012-06-27
$ ps vx | head -1 ; ps vx| egrep –v “idsldap | root” | grep –v PID |sort –rn +3 | head -10

PID TTY      STAT   TIME   MAJFL   TRS       DRS           RSS    % MEM       COMMAND
29403 ?       S        58:12      0         43           2362188   247084    0.7       db2agent (WPS1002) 0                
26440 ?      S        54:30     11        43          1939204    57404      0.1       db2agent (WPS1005) 0                
29417 ?       S        44:44      1         43           2721112   137272    0.4       db2agent (WPS1003) 0                
28698 ?       S        11:59      1         43           2348732   217272    0.6       db2agent (WPS1002) 0                
28228 ?       S          5:51      0         43           2349244   243492    0.7       db2agent (WPS1002) 0                
 4459 ?        S          4:48    111       43           2094192   162412    0.4       db2agent (WPS1004) 0                
 3180 ?       S          4:36      2         43           2720848    50964     0.1       db2agent (WPS1003) 0                
23302 ?      S          4:59      0         43           2721988    187180   0.5       db2agent (WPS1003) 0                
17972 ?       S          4:22      0         43           2720440    173944   0.5       db2agent (WPS1003) 0                
17970 ?        S          4:06      0         43           1939020    51924     0.1       db2agent (idle) 0                    


Hi Unix experts,

 I am looking for a unix shell script which  awks all databases(WPS1002,WPS1003,…..) and sum up the time  and RSS.

Database             Time(cpu)         RSS           %MEM
WPS1002    
WPS1003                  

Thanks,
Ahmed.
0
Comment
Question by:1981m
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
4 Comments
 
LVL 84

Expert Comment

by:ozo
ID: 20294636
| awk '{rss[$11]+=$7;split($4,t,":");time[$11]+=y[0]*60+t[1]}END{for( n in rss ){ printf "%s\t%s\t%d:%02d\n",n,rss[n],time[n]/60, time[n]%60}}'
0
 

Author Comment

by:1981m
ID: 20302218
Hi ozo,

 This script is partially working, but it is not summing up the time.The time should be in HH:MM:Sec format.

Thanks.
0
 
LVL 84

Expert Comment

by:ozo
ID: 20303117
| awk '{rss[$11]+=$7;split($4,t,":");time[$11]+=t[1]*60+t[2]}END{for( n in rss ){ printf "%s\t%s\t%d:%02d\n",n,rss[n],time[n]/60, time[n]%60}}
0
 
LVL 84

Accepted Solution

by:
ozo earned 125 total points
ID: 20303141
There was only one : in the times in the example, if there are sometimes one : and sometimes two
awk '{rss[$11]+=$7;s=0;for(n=1;n<=split($4,t,":");n++){s*=60; s+=t[n]}time[$11]+=s}END{for( n in rss ){ printf "%s\t%s\t%d:%02d:%02d\n",n,rss[n],time[n]/60/60, time[n]/60%60,time[n]%60}}'
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Issues with Ports in Linux (Hyper-V Guest) 2 110
Unix process listing into CSV format 3 87
awk sed 8 135
VMware machine is not booting 6 127
Hello fellow BSD lovers, I've created a patch process for patching openjdk6 for BSD (FreeBSD specifically), although I tried to keep all BSD versions in mind when creating my patch. Welcome to OpenJDK6 on BSD First let me start with a little …
Have you ever been frustrated by having to click seven times in order to retrieve a small bit of information from the web, always the same seven clicks, scrolling down and down until you reach your target? When you know the benefits of the command l…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question