一 建立監控指令碼
首先在檔案夾下建一個.sh格式的空文檔
在終端root許可權下輸入命令開啟.sh檔案進行編輯
sudo vim /*/*……/**.sh //vim編輯輸入時請按先按I鍵,編輯好之後按Esc鍵退出編輯選項,接著在不可編輯狀態下輸入:wq進行儲存退出
//shell指令碼
pid=`pidof processName` //那個引號不是單引號,是鍵盤Esc下的那個按鍵輸入的。獲得該進程的進程ID號
echo $pid //ID號輸出到終端介面
interval=10 // 每隔十秒鐘記錄一次
while true
do
echo $(date +"%y-%m-%d %H:%M:%S") >> /home/user/share/test/proc_memlog.txt //擷取系統當時時間
cat /proc/$pid/status|grep -e VmRSS >> /home/user/share/test/proc_memlog.txt //將記憶體佔用率VmRSS寫入目錄/home/user/share/test/下的檔案proc_memlog.txt中。proc_memlog.txt為自動產生的檔案。">>"符號為追加寫入,寫入的內容不會被覆蓋
cpu=`top -n 1 -p $pid|tail -2|head -1|awk '{ssd=NF-4} {print $ssd}'` //獲得該進程的CPU使用率。
echo "Cpu: " $cpu >> /home/user/share/test/proc_memlog.txt //將CPU使用率寫入proc_memlog.txt檔案中
echo $blank >> /home/user/share/test/proc_memlog.txt //將一個空白行寫入proc_memlog.txt檔案中
sleep $interval
done
//接下來運行指令碼
二 運行監控指令碼
運行終端,切換到建立指令碼的該目錄下,輸入 sh ./***.sh //即可實現記憶體和CPU的監控
三 由於proc_memlog.txt檔案一直被寫入,時間過長會導致檔案太大。所以可以將proc_memlog.txt修改成每寫滿100kb,自動產生另外一個檔案繼續寫入。下面給的網址裡頭有完整的指令碼,他是按照100kb來分割檔案。
http://blog.chinaunix.net/uid-16728139-id-3415706.html