linux ubuntu 下利用shell指令碼監控單個進程的記憶體佔用率以及cpu使用率

來源:互聯網
上載者:User

一 建立監控指令碼
首先在檔案夾下建一個.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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.