vmstat命令中增加时间戳

上一篇 / 下一篇  2007-02-01 23:12:50 / 个人分类:脚本语言

前阵子,利用vmstat生成的实时性能数据文件,美中不足是没有时间信息,缺少一个时间戳,测试结束后开发在debug问题的时候,往往需要定位性能瓶颈发生的具体时间,因此,需要为vmstat性能文件添加一个时间戳.

利用强大的awk即可实现这个功能,如下:

[autoadm@AUTOTEST-ATS ATSLib]$ vmstat 2 5 | awk '{print strftime("%H:%M:%S") $0}'
17:08:07 procs memory swap io system cpu
17:08:07 r b w swpd free buff cache si so bi bo in cs us sy id
17:08:07 1 0 0 8 316280 251760 995400 0 0 23 75 120 108 1 1 98
17:08:09 0 0 0 8 316280 251760 995400 0 0 0 12 105 70 0 2 98
17:08:12 0 0 0 8 316280 251760 995400 0 0 0 344 113 75 0 0 100
17:08:14 0 0 0 8 316072 251760 995400 0 0 0 0 116 167 6 2 92
17:08:16 0 0 0 8 316072 251760 995400 0 0 0 340 114 76 0 0 100
[autoadm@AUTOTEST-ATS ATSLib]$

其中的命令strftime好像在solaris下面不行,不知道是否因为strftime函数的缘故?如果是这样,用系统命令date应该也可以,尝试如下:

[autoadm@AUTOTEST-ATS ATSLib]$ vmstat 2 5 | awk '{ system("date +%H:%M:%S"); print $0}'
17:10:25
procs memory swap io system cpu
17:10:25
r b w swpd free buff cache si so bi bo in cs us sy id
17:10:25
0 0 0 8 316092 251764 995584 0 0 23 75 120 108 1 1 98
17:10:27
0 0 0 8 316092 251764 995584 0 0 0 98 109 77 0 0 100
17:10:29
0 0 0 8 315884 251764 995584 0 0 0 0 117 174 5 3 92
17:10:31
0 0 0 8 315892 251764 995584 0 0 0 348 137 97 0 0 100
17:10:33
0 0 0 8 315888 251764 995584 0 0 0 12 157 200 16 3 80
[autoadm@AUTOTEST-ATS ATSLib]$

不过这样也有一个缺陷,就是时间和性能数据分在了两行, 不知有什么好办法可以搞到一行?


其实不仅仅是vmstat,其他的不带时间戳的命令都可以用这种方法得到时间戳.

TAG: 脚本语言 软件测试

 

评分:0

我来说两句

日历

« 2024-04-20  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 38535
  • 日志数: 29
  • 图片数: 2
  • 书签数: 1
  • 建立时间: 2006-12-28
  • 更新时间: 2007-05-14

RSS订阅

Open Toolbar