2017-06-11 7 views
0

ps,topまたはhtopを使用している場合、同じプログラムのプロセスをLinux Bashでどのように組み合わせるか?これに代えてps -eo pmem,pcpu,args呼ば例えばコマンドでBash "ps"の行を結合する

、:それは合計メモリとCPU値を

... 
10.0 4.0 /usr/sbin/apache2 -k start 
2.5 1.0 /usr/sbin/mysqld 
... 

を示すであろう

... 
2.0 1.0 /usr/sbin/apache2 -k start 
3.0 2.0 /usr/sbin/apache2 -k start 
5.0 1.0 /usr/sbin/apache2 -k start 
2.5 1.0 /usr/sbin/mysqld 
... 

多分、これを達成する別のコマンドがありますか?

+1

私はawk' 'を見てみることをお勧めします。 – Cyrus

答えて

1
awk '{m=$1; c=$2; $1=$2=""; pmem[$0]+=m; pcpu[$0]+=c} END{for(i in pmem) {printf("%5.1f %5.1f %s\n",pmem[i], pcpu[i], substr(i,3))}}' file 

出力:いくつかのコメントで

 
10.0 4.0 /usr/sbin/apache2 -k start 
    2.5 1.0 /usr/sbin/mysqld 

awk '{m=$1; c=$2    # save column 1 and 2 
    $1=$2=""     # remove content of columns 1 and 2 
    pmem[$0]+=m; pcpu[$0]+=c} # save memory and cpu to hashes and 
           # add to its value, use rest of 
           # row as key 

    # print content of both hashes and key in a loop 
    END{for(i in pmem) {printf("%5.1f %5.1f %s\n",pmem[i], pcpu[i], substr(i,3))}}' file 
+0

ありがとうございます。私は前のコマンドでパイプするときに動作します。しかし、それはやや面倒です、そして、私が他のパフォーマンス統計を見たいと思ったら、私はかなりのものを編集しなければならないでしょう。恥ずかしくて、psやtopやhtopの中でこの一見世俗的な仕事をするオプションはありません。おそらくこれをスクリプトとして保存する必要があります。 – Tigran

関連する問題