2017-06-26 47 views
0

我有這樣的腳本:越來越具體MEM和CPU值

echo $(date +%F-%H%M) $(top -n 1 -b -c -p $ZK_PID,$KAFKA_PID,$AGENT_PID,$ENGINE_PID | tail -n 1) >> `hostname`_top.log 

其產生下面的輸出:

top - 06:32:15 up 7 days, 21:22, 2 users, load average: 1.71, 1.66, 1.66 
Tasks: 3 total, 0 running, 3 sleeping, 0 stopped, 0 zombie 
%Cpu(s): 22.8 us, 15.9 sy, 0.0 ni, 61.1 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st 
KiB Mem : 14360876 total, 191296 free, 10837496 used, 3332084 buff/cache 
KiB Swap:  0 total,  0 free,  0 used. 3066536 avail Mem 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM  TIME+ COMMAND 
48721 equalum 20 0 12.828g 1.214g 6756 S 3.0 8.9 2176:15 /usr/lib/+ 
52019 equalum 20 0 5809096 1.436g 5392 S 1.3 10.5 450:51.78 java -Dna+ 
48411 equalum 20 0 4150868 403536 4992 S 0.0 2.8 3:56.87 /usr/lib/+ 

我試圖僅獲取%CPU和%MEM值那些過程,我該怎麼做?

+0

可以使用'awk'或'cut'解析列,或者你可以用Python更強大的,獨立於平臺的方法(參見'psutil ')。 –

回答

1

嘗試腳本代碼之後添加此

| grep '%CPU|%MEM' 
+0

我試過這一個:top -n 1 -b -c -p 48721 |尾巴-n 1 | awk'{print $ 9 $ 10}' 其中產生以下輸出: 6.78.9 那些是2值6.7和8.9,我想在它們之間增加空格是可能的嗎? – ErezN

+0

嘗試top -n 1 -b -c -p 48721 |尾巴-n 1 | awk'{print $ 9''$ 10}' –