2016-11-16 107 views
0

作为性能指标集合的一部分,我尝试使用atop获取特定运行的系统的CPU,IO,内存...用法。 要做到这一点,我开始使用顶部以下命令atopar提取到其他信息的文本文件

/usr/bin/atop -a -w /venki/atop_temp 2 

一旦生成数据文件,我要提取感兴趣的信息来生成顶上数据文件。例如,我想获取内存使用情况的详细信息。为此,我正在申请下面的命令。

atopsar -b 20:39:45 -e 20:42:45 -r /venki/atop_temp -S -x -a -m > /venki/atop_mem4 

它导致下面的信息:

sdl00999 2.6.32.54-0.7.TDC.1.R.4-default #1 SMP 2012-04-19 16:07:40 +0200 x86_64 2016/11/15 

-------------------------- analysis date: 2016/11/15 -------------------------- 
20:39:37 memtotal memfree buffers cached dirty slabmem swptotal swpfree _mem_ 

20:39:41  3700M 2386M  9M 353M 0M 121M  309M 302M 
20:39:43  3700M 2385M  9M 353M 0M 121M  309M 302M 
20:39:47  3700M 2385M  9M 353M 2M 121M  309M 302M 
20:39:49  3700M 2385M  9M 353M 2M 121M  309M 302M 

但是,我需要更多的列[日期 - 2016年11月16日]在开始。 我需要这些信息,如果我的测试去多天[3天 - 我需要类似的信息,其历史时间]

可以在任何一帮我在提前这

感谢

+0

您已在标题中具有此分析日期:2016/11/15。它有什么问题? – GMichael

+0

我需要它,如下文件中的列: 2016/11/15 20:39:41 3700M 2386M 9M 353M 0M 121M 309M 302M 2016/11/15 20:39:43 3700M 2385M 9M 353M 0M 121M 309M 302M 二○一六年十一月一十五日20时39分47秒3700M 2385M 9M 353M 2M 121M 309M 302M 20时39分49秒3700M 2385M 9M 353M 2M 121M 309M 302M – user3655447

+0

在实时,我将有1000的为此,我需要在提取后为每行添加日期。这很容易,如果它包含在提取级别中。 – user3655447

回答

0

您可以从以下开始:

atopsar -b 20:39:45 -e 20:42:45 -r /venki/atop_temp -S -x -a -m | awk 'BEGIN {DATE_STAMP=""; } /analysis date: /{DATE_STAMP=$4;} /^[0-9]/ {print DATE_STAMP, $0;}' > /venki/atop_mem4 
+0

非常感谢GMichael。现在,我完成了这项要求。 – user3655447

+0

切勿在shell或awk脚本中使用所有大写变量,以避免与内建冲突(并且在shell中还导出)变量,并且通过使其看起来像在不使用内置/导出变量时看起来那样进行混淆。您可以删除BEGIN部分,它所做的是您没有它的默认行为。 C程序需要后缀分号,但不适用于awk,您也可以删除它们。 –