【CentOS】awk:フィールドの値の合計を計算する

スポンサーリンク

個人的メモ。以前apacheがよく応答無しになるので調べてみました -その1(コマンド)- » という記事を書いているときに

$ ps aux|grep httpd
apache    8864  0.5  8.3 460776 42488 ?        S    20:47   0:07 /usr/sbin/httpd -k start
apache    8950  0.7 10.0 469560 51004 ?        S    21:01   0:05 /usr/sbin/httpd -k start
apache    9002  0.4  7.1 455688 36284 ?        S    21:12   0:00 /usr/sbin/httpd -k start
apache    9007  5.2 12.3 481952 63160 ?        S    21:12   0:03 /usr/sbin/httpd -k start
apache    9009  2.1 11.0 475200 56208 ?        S    21:12   0:01 /usr/sbin/httpd -k start
apache    9013  2.4  9.7 468736 49932 ?        S    21:12   0:01 /usr/sbin/httpd -k start
apache    9020  0.0  0.9 428148  4964 ?        S    21:13   0:00 /usr/sbin/httpd -k start

というコマンドでapacheのプロセスの状態、それからapacheが使用している仮想/物理メモリ量を調べていました。psコマンドの6番目が物理メモリ使用量で、この項目を合計するとapache全体が使っている物理メモリの使用量が計算できます。計算機持ってきて計算すればいいんですが、ちょっとめんどくさい。

というときにawkというコマンドを使えば、簡単に6番目の項目が集計できます。

$ ps aux|grep httpd|awk '{sum += $6} END {print sum}'
304040

本格的にapacheの状態を調べる時はそれようのツールなどを使ったほうがいいと思いますが、ざっと調べる時はps aux+計算でも良いし。上のコマンドをコピペするとさくっと集計できるから、その手軽さが便利です。

以下のページを参考にしました。awkには他にも色んな機能があるので、興味ある方はどうぞ。perlの簡単版という感じの言語です。
awk sed 入門