在運維過程中,我們有時需要對cpu進行優化,啥時候優化呢? 自然是出問題的時候,那麼啥時候出問題呢? 這個問題就可以使用我們的shell腳本了.
原理: 通過監視一段時間内cpu使用情況,找出長期占用cpu的程序并對其進行優化,提高cpu的效率
我們先來寫一個監視cpu并計算一小時内cpu的使用情況的腳本:
#!/bin/bash
secs=3600
unit_time=60
steps=$(( $secs / $unit_time ))
echo watching cpu usage... ;
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的妙處.