2014-01-08 34 views
0

我已經生成了服務器的內存和使用的CPU的歷史。但我無法在服務器上安裝任何軟件。我需要創建一個腳本來生成日誌命令TOP

那麼我想這個腳本

#!/bin/bash 
while true; do 
date >> system.log 
top -n1 | grep 'Cpu\|Mem\|java\|eservices' >> system.log 
echo '' >> system.log 
sleep 2 
done 

但是當我嘗試執行尾-500f SYSTEM.LOG日誌停止

+0

該腳本將永遠,直到你停止它運行。你如何做測試?你確定腳本仍在運行嗎? – fedorqui

+0

目前還不清楚「腳本完成」是什麼意思。你實際運行什麼,你看到了什麼,以及你期望看到什麼? – l0b0

+0

我想在後臺運行腳本。在我將生成一個報告與數據 ./script.sh& –

回答

2

你或許應該使用-b批處理模式下的參數。從man top

以'Batch'模式開始頂部,這對從頂部向其他程序或文件發送輸出可能有用。在這種模式下,頂層將不會接受輸入並運行,直到迭代限制您使用'-n'命令行選項設置或直到被終止。

您可能想使用便攜式格式tail -n 500 -f

無論如何,保存top輸出到文件,然後運行tail -f就可以模擬top的工作方式。你想達到什麼目標,top已經做不到了?

+0

我想在服務器和特定的過程中生成使用過的內存的歷史記錄。必須有更好的方法,但我不能在服務器上安裝任何東西。 –

+0

謝謝你的回答 –

相關問題