在運維過程當中,咱們有時須要對CPU進行優化,啥時候優化呢? 天然是出問題的時候,那麼啥時候出問題呢? 這個問題就可使用咱們的shell腳本了.
python
原理: 經過監視一段時間內CPU使用狀況,找出長期佔用CPU的進程並對其進行優化,提升CPU的效率mysql
咱們先來寫一個監視CPU並計算一小時內CPU的使用狀況的腳本:sql
#!/bin/bashshell
SECS=3600數據庫
UNIT_TIME=60bash
STEPS=$(( $SECS / $UNIT_TIME ))運維
echo Watching CPU usage... ;ide
for((i=0;i<STEPS;i++))工具
do優化
ps -eo comm,pcpu |tail -n +2 >>/tmp/cpu_usage.$$
sleep $UNIT_TIME
done
echo
echo CPU eaters :
cat /tmp/cpu_usage.$$ | \
awk '
{ process[$1] += $2; }'
END{
for(i in process)
{
printf( "%-20s %s\n",i,process[i]);
}
}' |sort -nrk 2 | head
rm /tmp/cpu_usage.$$
寫慣了python,在寫shell腳本,就會以爲shell腳本比較晦澀,而python就不同了,簡單,易懂,
以前有知識星球的星球居民問: shell都能用來幹嗎,好像學完了仍是不知道能寫啥.
除了這個腳本外,shell還能夠寫不少管理腳本這裏舉例說明幾個方向:
圖像文件的縮放及格式轉換
使用shell讀取mysql數據庫
用戶管理
檢查磁盤及文件系統錯誤
監控用戶登陸防範******
搭建防火牆
寫圖片加載器及下載工具
跟蹤網站變更等
其實有時候不用刻意迷信python,不少時候你以爲python好,shell差,實在是你由於咱們寫shell腳本能力太差.
固然了,有些事情python能作,shell作不了,後面咱們會來討論python的妙處.