カレンダー

11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

広告



最近の記事

カテゴリー

DATE: CATEGORY:TECH


なんか最近、「○○の方法」的なエントリーばっかりですが、
今回も覚書としてメモメモ。です。

というわけで、vmstatについてですがCPUやらMemoryの
値をバババーッて表示して見れるコマンドです。

表示されるとこんな感じ。

$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 31440 131364 268040 0 0 0 1 0 2 0 0 100 0 0
0 0 0 31432 131364 268040 0 0 0 0 15 21 0 0 100 0 0
0 0 0 31432 131364 268040 0 0 0 0 12 17 0 0 100 0 0

このコマンド便利なんですが、各出力結果が
いつのものなのかが分からない。

アプリのログとかと整合性をとりたい時にもいまいち不便。
sar使うとか他の方法も使う手もあるけれど、vmstatに
時間を出力させちゃうのも簡単なのでメモ。

vmstatに時間を表示させる


結論としては、awkを使え。


$ vmstat 1 | awk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 }'
2012/06/08 11:00:07 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
2012/06/08 11:00:07 r b swpd free buff cache si so bi bo in cs us sy id wa st
2012/06/08 11:00:07 1 0 0 29204 131392 268052 0 0 0 1 0 2 0 0 100 0 0
2012/06/08 11:00:08 0 0 0 29188 131392 268052 0 0 0 0 17 24 0 0 100 0 0
2012/06/08 11:00:09 0 0 0 29188 131392 268052 0 0 0 0 14 16 0 0 100 0 0
2012/06/08 11:00:10 0 0 0 29188 131392 268052 0 0 0 0 16 25 0 0 100 0 0

これで時間が出力されました。

で、「時間を出力させる」って事はやっぱり
「あとで見る」ってことですよね。

というわけで、続いてファイルに出力する方法です。

vmstatの結果をファイルに出力する


普通に考えたらリダイレクトで取得出来そうですが、、、

$ vmstat 1 | awk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 }' >> vmstat.log

実はこれだと何も出力されません。
vmstat.logは0byteのまま。

原因は、わかりません。

この処理ってパイプの後ろの処理が終了してからリダイレクト先に
出力されるんですが、vmstat 1をCtrl+Cとかで強制終了するので、
出力されない、、らしいです。

で、対策ですが、system関数を使うと一度リフレッシュされるらしく、
ちゃんとリダイレクト先に出力されるみたいです。

というわけで、これ。

$ vmstat 1 | awk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 } { system(":") }' >> vmstat.log

これならちゃんと出力されます。

タグ : TECH Linux

Comment

コメントの投稿

管理者にだけ表示を許可する


トラックバック


この記事にトラックバックする



copyright © なんとなしの日記 all rights reserved.
内職☆在宅ワークの最強は?アフィリエイト!. 初心者だってカッコ良いホームページ作るぅ!
Powered by FC2ブログ
Related Posts Plugin for WordPress, Blogger...