最近公司領導要求,要對客戶那邊寫一個自動化的腳本,用來監控客戶那邊CPU使用率和硬盤空間,並通過郵件來報警。剛好參考老男孩李導最近的案例,測試了下,可以正常使用。
CPU監控:top -n 1 查看1次就退出
1 | Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.3% id , 0.0%wa, 0.0%hi, 0.0%si, 0.0%st |
99.3%id 是未使用的CPU,剩餘的都是使用的。
獲取使用率
1 | top -n 1| awk -F '[, %]+' 'NR==3 {print 100-$11}' |
知識點2:
磁盤監控先監控/
1 | df -h| awk -F '[ %]+' '/\/$/{print $5}' |
知識點3:使用bc進行含有小數的大小判斷
1 2 3 4 5 6 | [root@oldboy ~] # echo "0.1>0.01"|bc 1 [root@oldboy ~] # echo "0.1>0.2"|bc 0 [root@oldboy ~] # echo "5.6>10.3"|bc 0 |
具體步驟:
1. 配置/etc/mail.rc支持發郵件
1 | http: //oldboy .blog.51cto.com /2561410/1706911 |
2. 腳本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [root@oldboy scripts] # cat check.sh #!/bin/bash LANG=en_US.UTF-8 cpuUsed=` top -n 1| awk -F '[, %]+' 'NR==3 {print 100-$11}' ` diskUsed=$( df -h| awk -F '[ %]+' '/\/$/{print $5}' ) logFile= /tmp/jiankong .log function Sendmail(){ } function check(){ if [ ` echo "$cpuUsed>80" | bc ` - eq 1 -o $diskUsed - ge 85 ]; then echo "CPU使用率:${cpuUsed}%,磁盤使用率:${diskUsed}%" >$logFile Sendmail fi } function main(){ check } main |
3. 加入定時任務,每5分鐘執行一次。