2016-11-16 29 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,您也可以刪除它們。 –

相關問題