重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【終了しました】教えて!gooアプリ版

vmstatコマンド cpuのidle結果の自動取得に関して

Linuxのcrontabでシェルファイルを実行し、
その中でvmstatコマンドを実行、出てきた結果のCPU(idleの値)のみを取得したいのですが、
何か方法はありますでしょうか。

# vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 42944 21640 38644 839040 0 0 11 13 254 23 0 0 100 0
0 0 42944 21640 38644 839040 0 0 0 0 254 10 0 0 100 0
0 0 42944 21640 38644 839040 0 0 0 0 253 25 0 0 100 0

上記の例でいうと、3行出ている結果それぞれ、
行末から2個目の値(100)を取得(変数に格納など)したいと考えております。

値と値間は半角スペースで区切られ、出力する値の桁数によって半角スペースの個数が異なります。
ただし、値間に必ず1つは半角スペースは入ります。

半角正規表現を使って試みたのですが、
上述の取得したい値が取れません。
取る方法を教えていただけないでしょうか。

正規表現にこだわっているわけではないので、
方法は問いません。
(一般的にはこうやる、というものがありがたいですが・・・)

よろしくお願いします。

A 回答 (1件)

vmstat 1 3 | tail -n 3 | awk '{print $15}'


で、とりあえず数字が列挙されます。

あとは…for等で変数に取り込むとか…

# vmstatの実行が終わってから処理されねことになりますが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
この取得方法で問題ありません。

awkコマンドを使う発想がありませんでした。
Linux初心者ですが、もっと勉強が必要ですね。

お礼日時:2009/01/25 20:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!