Linux メモリ監視

環境

Ubuntu 12.04.2 LTS


vmstatに時刻を挿入する

$ sudo vmstat 1 3 | awk '{print strftime("%H:%M:%S"), $0}'
07:12:07 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
07:12:07  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
07:12:07  2  0      0 204244 109116 792792    0    0    54    52  313  516  5  1 92  1
07:12:08  0  0      0 202624 109116 794672    0    0     0     0  494  561  1  1 98  0
07:12:09  0  0      0 202252 109116 794576    0    0     0     0  416  590  1  1 98  0


こちらのコマンドを参照:http://univibe.ddo.jp/wiki/?%28cmd%29+vmstat

ログに出力する場合は以下のようにするのが良いみたい。
while :
do
   _line=`vmstat -n 1 3 | tail -n 1`
   _date=`date '+%Y/%m/%d %H:%M:%S'`
   echo "${_date} ${_line}" >> vmstat.log
done
※リダイレクトする部分(>>)をteeに渡すようにすれば(| tee)、画面に表示されます。


実行するための準備やコマンドの内容確認

strftimeの実行でエラーとなったため、gawkをインストール

$ sudo vmstat 1 3 | awk '{print strftime("%H:%M:%s"), $0}'s
awk: line 2: function strftime never defined
$ sudo apt-get install gawk

awkとは

  • スクリプトインタプリタで、awkに渡している部分(ここでは{print strftime("%H:%M:%S"), $0})がawkのソースとなる。


strftimeとは

  • 日付および時刻の文字列への変換


参照:
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/strftime.3.html
※サンプルプログラムを実際実行してみて理解が深まった
最終更新:2013年05月23日 06:30