• 締切済み

プロセスのCPU使用率のみを切り出したい

httpdプロセスのCPU使用率のみを切り出してshに渡して使用したいのですが、 cut や sed 、その他を使って、どうすれば、うまく切り出せるでしょうか。 #top -b -n 1 |grep httpd  の結果は以下の通り(例として3行のみ)ですが、 CPU使用率は、右から4つ目のフィールドです。 (それぞれ 12.0 3.0 5.1 といった数値の箇所です) cut -d' ' -f 10 などだと、スペースの数が変わるためうまくいきません・・ 32554 apache 15 0 29352 9160 1932 S 12.0 0.9 0:00.00 httpd 325 apache 15 0 2932 9160 1932 S 3.0 0.9 12:00.00 httpd 3255 apache 15 0 29352 9160 1932 S 5.1 0.9 0:00.00 httpd どうぞ宜しく御願いいたします。

みんなの回答

  • k_izumo
  • ベストアンサー率50% (68/134)
回答No.4

Linuxインストール時にどこまでアプリケーションを追加してるか解らないのですが NET-SNMP(UCD-SNMP)のインストールが必要ですね。

tanpopo012
質問者

お礼

ありがとうございます。改めてトライしてみます。

  • k_izumo
  • ベストアンサー率50% (68/134)
回答No.3

違った方法ですが snmpwalkで取り出してみてはいかがでしょうか。 TOPで表示できる値は標準MIBに定義されています。 プロセスOID毎にCPU使用率を取り出せると思います。

tanpopo012
質問者

お礼

-bash: snmpwalk: command not found  となりました。 snmpwalkは別途インストールしないといけないのですかね。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

bash だったら, 例えば top -b -n 1 | grep httpd | while read -a field; do echo ${field[9]}; done なんかでうまくいかないかなぁ? 添え字は 9 か 10 か, どちらかだと思う.

tanpopo012
質問者

お礼

添え字は 8 でうまく切り出せました! top -b -n 1 | grep httpd | while read -a field; do echo ${field[8]}; done ありがとうございました。

回答No.1

こんにちは。 awkコマンドで取り出してはどうでしょうか。 #top -b -n 1 |grep httpd |awk '{print $10}'

tanpopo012
質問者

お礼

print $9 で出来ました! top -b -n 1 |grep httpd |awk '{print $9}' で切り出せました!ありがとうございました。

関連するQ&A