歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> unix下的top命令問題

unix下的top命令問題

日期:2017/2/28 11:11:47   编辑:關於Unix


今天因工作需要,要抓取top記錄中的CPU統計這行,類似如下的內容:
CPU states: 68.3% idle, 22.3% user, 7.6% kernel, 1.8% iowait, 0.0% swap
需要把這段內容重定向到文件中,但是使用top -b 這樣的參數不能實現這樣的效果,重定向到文件中的內容如下:
last pid: 53372; load averages: 0.00, 0.00, 0.00 up 1+03:32:16 18:28:11
37 processes: 1 running, 35 sleeping, 1 zombie
Mem: 22M Active, 342M Inact, 60M Wired, 2068K Cache, 111M Buf, 459M Free
Swap: 6144M Total, 6144M Free
中間丟失了有關CPU統計的信息。
覺得比較奇怪,於是找來了另外一台FreeBSD的機器來看看(公司的是solaris),結果也是同樣的情況。問我老婆是否知道,結果她給我了一串top -b -n 1 -c > top.log。我試了下,不行!但是她說她那邊是可以的。於是我問了下她用的操作系統,結果是linux的。可能找到問題了,於是我找來一個linux的機器測試了下,果然跟操作系統有關。我暈了。找了好多地方都沒有類似這樣的實現方法。
最後還是在一個之前看過的網頁中找到了辦法,這個網頁之前被我忽略了,以為是一般的問題。後來按照上面說的以-d參數來實現(應該是指delay的意思吧)。top -d 2 這樣就有了,如下:
last pid: 53376; load averages: 0.00, 0.00, 0.00 up 1+03:32:48 18:28:43
39 processes: 1 running, 37 sleeping, 1 zombie
CPU states: % user, % nice, % system, % interrupt, % idle
Mem: 23M Active, 342M Inact, 60M Wired, 2068K Cache, 111M Buf, 457M Free
Swap: 6144M Total, 6144M Free
原來是unix在統計信息的時候,一開始沒有CPU的信息,需要過幾秒種才有顯示。這就是-d參數的作用了。完整的用法:top -d 2 0 | grep CPU。這樣就顯示了上面開始時所提出的顯示內容了。
Copyright © Linux教程網 All Rights Reserved