topコマンドの結果をさくっとエクセルでグラフ化するまで

スポンサーリンク
tech系(Linux)
スポンサーリンク

メモリ使用量をエクセルに出してグラフで表したいなんて思いませんか?

今回はその方法を書いておきます。

topコマンドの結果をファイル出力する

topコマンドでCPUやメモリの使用量が分かります。

topコマンドの結果をファイル出力するには以下のようなコマンドになります。

$ nohup sh -c 'top -b -d 10 > test_top.txt' &

これは10秒ごとに値をファイルに出力させます。

nohupと&を使うことでバックグラウンド実行できることになります。

上記のコマンドが動いているか確認する。

 ps aux | grep top
xxxx 10920  0.0  0.0   2612   596 pts/3    S    19:02   0:00 sh -c top -b -d 10 > test_top.txt

このtopコマンド実行を終わらせるには以下のコマンド、PIDを指定して止める。(この時のPIDは10920)

$ kill 10920
[1]+  Terminated              nohup sh -c 'top -b -d 10 > test_top.txt'

今回はメモリの値を取得してみます。

出力したファイルから特定の値を取得する

topコマンドのメモリ使用量のところは以下のところですね。

MiB Mem :   3888.5 total,   2394.9 free,    657.0 used,    836.6 buff/cache

時間はここの行で確認できますね。

top - 19:50:52 up  3:25,  0 users,  load average: 0.03, 0.09, 0.09

これを取得します。

まずは時間から。

$ grep -Eo "[0-9]{2}:[0-9]{2}:[0-9]{2}" test_top.txt 
19:02:08
19:02:18
19:02:28
19:02:38
19:02:48
・・・【略】

メモリの情報の部分をとるには以下のようなコマンドになります。

$ awk '/MiB Mem/ {print $4, $8}' test_top.txt 
3888.5 662.4
3888.5 663.3
3888.5 663.2
3888.5 662.7
3888.5 662.5
3888.5 663.4
3888.5 664.8
3888.5 664.1
・・・【略】

これら2つをエクセルに貼り付ければ、(「データ」の「区切り位置」でスペースのところで値を分けられます)以下のようにエクセルでグラフ化できます。

タイトルとURLをコピーしました