topコマンド

topコマンドで負荷が高いプロセスを知りたい場合があります。

特に100%CPUを使ってしまうようなプロセスについて確認したい場合はどうすればいいでしょう。バッチモードがあるので、それを使うという方法が考えられます。awkやsedを組み合わせると、結構いけます。次の例では、100.0% を 1000へ置き換えて抽出しています。

top -b -n 1 | awk '{print $9 " " $1}' | sed 's/\.//' | \
 grep -v "%CPU" | grep -v users | grep -v stopped | grep -v Cpu | \
 grep -v buffers | grep -v cached|sort -r | \
 head -1 > result.txt ; v=`cat result.txt | awk '{print $1}'`

if [ $v -eq 1000 ]; then
  pid=`awk '{print $2}'`;
  echo $pid;
fi

詳解 シェルスクリプト」や「UNIXシェルスクリプトハンドブック」などで勉強してみると良いでしょう。

関連書籍:

同じタグの記事: bash
同じカテゴリの記事: Linux
関連書籍: bash