2012年10月14日日曜日

vmstatやtopコマンドに時間を表示する方法


定期的に結果を出力するコマンドに時間を表示させる方法です。
パフォーマンステストの状況確認を行う場合に便利かも。

OS: CentOS 6.3(64-bit)
vmstat: 3.2.8
top: 3.2.8


■vmstatに時間を表示させる
[root@cent63 ~]# vmstat 1 3 | awk '{print strftime("%Y/%m/%d %H:%M:%S"), $0}' 2012/10/14 21:45:58 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- 2012/10/14 21:45:58 r b swpd free buff cache si so bi bo in cs us sy id wa st 2012/10/14 21:45:58 1 0 4832 99536 115484 398552 0 0 0 1 9 3 0 0 100 0 0 2012/10/14 21:45:59 0 0 4832 99520 115484 398552 0 0 0 0 48 85 0 1 99 0 0 2012/10/14 21:46:00 0 0 4832 99520 115484 398552 0 0 0 0 51 82 1 0 99 0 0 [root@cent63 ~]#
perlを使う方法もあります。
[root@cent63 ~]# vmstat 1 3 | perl -MPOSIX -pe 'BEGIN{$|=1} print strftime q{%Y/%m/%d %H:%M:%S }, localtime' 2012/10/14 21:46:08 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- 2012/10/14 21:46:08 r b swpd free buff cache si so bi bo in cs us sy id wa st 2012/10/14 21:46:08 1 0 4832 99536 115484 398552 0 0 0 1 9 3 0 0 100 0 0 2012/10/14 21:46:09 0 0 4832 97412 115496 398980 0 0 440 0 170 175 5 3 72 20 0 2012/10/14 21:46:10 0 0 4832 97412 115496 398980 0 0 0 0 50 85 0 0 100 0 0 [root@cent63 ~]#

■topに時間を表示させる
[root@cent63 ~]# top -n 1 -b | head -5 | awk '{print strftime("%Y/%m/%d %H:%M:%S"), $0}' 2012/10/14 21:48:17 top - 21:48:17 up 43 days, 3 min, 2 users, load average: 0.00, 0.00, 0.00 2012/10/14 21:48:17 Tasks: 160 total, 1 running, 159 sleeping, 0 stopped, 0 zombie 2012/10/14 21:48:17 Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st 2012/10/14 21:48:17 Mem: 1020644k total, 922124k used, 98520k free, 115500k buffers 2012/10/14 21:48:17 Swap: 2064376k total, 4832k used, 2059544k free, 398980k cached [root@cent63 ~]#

いろいろと応用が利くかも…。またしても小ネタですみません。

0 件のコメント:

コメントを投稿