一個小小的script與大家分享,主要是透過ps的指令去累計每位使用者的CPU以及MEMORY用量,系統上若是有很多不同的用戶,這是一個很方便的檢視方式。而在虛擬主機上,apache+suPHP的模式下,也可以快速地察覺是哪一個用戶或是網站吃資源吃得最兇,甚至定期把資料撈出來匯入資料庫,做成圖表也沒有問題了啦!
這個script是在CentOS下使用沒有問題,個平台可以依照ps的輸出結果再進行修改。
預設是每五秒重新撈一次資料,可以儲存成scriipt之後,自行帶入參數當成秒數。
#!/bin/bash
if [ $1 -ne 5 ];then
sec=$1
else
sec=5
fi
while true
do
clear
ps aux | tail -n+2 | awk \
'BEGIN { printf("\tUSER\t%MEM\t%CPU\n")}
{
CPU[$1] += $3
MEM[$1] += $4
}
END { for (USER in MEM)
{
printf("%12s %6.2f %6.2f\n", USER, MEM[USER], CPU[USER])
}
}'
sleep $sec
done