unix linux 下彙總單一使用者 cpu mem 使用率 等維護資訊

spectre2發表於2012-05-15
最近專案需要做報表,要記錄單一使用者的cpu和mem使用率,研究了一下awk   

[root@app1 ~]# ps aux |head 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  10372   664 ?        Ss   Jan18   0:15 init [3]         
root         2  0.0  0.0      0     0 ?        S<   Jan18   1:09 [migration/0]
root         3  0.0  0.0      0     0 ?        SN   Jan18   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S<   Jan18   0:00 [watchdog/0]
root         5  0.0  0.0      0     0 ?        S<   Jan18   0:05 [migration/1]
root         6  0.0  0.0      0     0 ?        SN   Jan18   7:05 [ksoftirqd/1]
root         7  0.0  0.0      0     0 ?        S<   Jan18   0:00 [watchdog/1]
root         8  0.0  0.0      0     0 ?        S<   Jan18   0:04 [migration/2]
root         9  0.0  0.0      0     0 ?        SN   Jan18   1:54 [ksoftirqd/2]
先確定輸出列
ps aux |awk '{if ($1 ~ /^nobody$/) {print $1"\t",$2"\t",$3"\t",$4}}'
顯示 nobody 使用者
[root@app1 ~]# ps aux |awk '{if ($1 ~ /^nobody$/) {print $1"\t",$2"\t",$3"\t",$4}}'
nobody   14625   0.0     0.0
nobody   14626   0.6     0.0
nobody   14627   0.6     0.0
nobody   14881   0.6     0.0
依次代表: USER PID   %CPU     %MEM  對應$1,$2,$3,$4
然後研究彙總處理,awk忘得差不多了,臨時找資料簡單研究了一下,做了個能實現功能的簡陋品:
ps aux |awk '{if ($1 ~ /^nobody$/) {print $1"\t",$2"\t",$3"\t",$4}}'|awk '{if(!ind[i]){ind[i++]=n;}}{sumi[n]+=$3;}{ if(!lnd[l]){lnd[l++]=m;}}{suml[m]+=$4;}END{for(j=0;j|head -1
中間居然用了3個管道符,2次awk還有個head~真難看~
結果如下:
nobody使用者:
[root@app1 ~]# ps aux |awk '{if ($1 ~ /^nobody$/) {print $1"\t",$2"\t",$3"\t",$4}}'|awk '{if(!ind[i]){ind[i++]=n;}}{sumi[n]+=$3;}{ if(!lnd[l]){lnd[l++]=m;}}{suml[m]+=$4;}END{for(j=0;j
nobody   1.8     0
依次代表: USER      %CPU     %MEM  
root使用者:
[root@app1 ~]# ps aux |awk '{if ($1 ~ /^root$/) {print $1"\t",$2"\t",$3"\t",$4}}'|awk '{if(!ind[i]){ind[i++]=n;}}{sumi[n]+=$3;}{ if(!lnd[l]){lnd[l++]=m;}}{suml[m]+=$4;}END{for(j=0;j
root     54.9    10.8
依次代表: USER      %CPU     %MEM  
程式碼雖然臃腫難看,效果還是達到了,專案時間太急,BOSS答應甲方答應的很痛快,我們就得悲催了。。。。
過來這陣再回來優化一下程式碼吧~有路過的朋友來一起討論一下吧~謝謝~

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14184018/viewspace-729860/,如需轉載,請註明出處,否則將追究法律責任。

unix linux  下彙總單一使用者 cpu mem 使用率 等維護資訊
請登入後發表評論 登入
全部評論

相關文章