1.判断磁盘使用空间

  1. df -h | grep -v File | sed 's/%//g' | awk '{if($5>80)print"使用空间超过了80%:", $6}' 
  2.  
  3. 或 
  4.  
  5. #!/bin/bash 
  6. #Filename:      disk.sh 
  7. #Date:  20110322 
  8.  
  9. DISK_warn=80 
  10. DISK_per=`df -h | grep -v Filesystem| awk '{print int($5)}'` 
  11.  
  12. for i in $DISK_per 
  13. do 
  14.         if [ "$i" -gt "$DISK_warn" ]; then 
  15.                 partion=`df -h | grep "$i%"|awk '{print $6}'` 
  16.                 echo "已使用空间超过80%: $partion" 
  17.         fi 
  18. done 
判断磁盘使用百分比是否超过设定值,这里可以修改为通过邮件报警
 
2.监控CPU的负载情况
  1. #!/bin/bash 
  2. #Filename:  cpu_load.sh 
  3. #Date:  20120322 
  4.  
  5. LOAD_15=$(uptime | awk '{print $NF}') 
  6. CPU_num=$(grep -c 'model name' /proc/cpuinfo) 
  7. LOAD_avg=`echo "scale=2;a=$LOAD_15/$CPU_num;if(length(a)==scale(a))print 0;print a"|bc` 
  8. INT_avg=`echo $LOAD_avg |cut -f 1 -d "."` 
  9. LOAD_warn=0.70 
  10.  
  11. if (($INT_avg > 0)); then 
  12.  
  13.         echo "当前服务器15分钟的平均负载为$LOAD_avg,超过警戒值1.0,请立即处理" 
  14.  
  15. else 
  16.         LOAD_now=`expr $LOAD_avg \> $LOAD_warn` 
  17.         if (($LOAD_now == 1)); then 
  18.                 echo "当前服务器15分钟的平均负载为$LOAD_avg,超过警戒值0.70,请及时处理。" 
  19.         fi 
  20. fi 
判断cpu负载情况,就否超出设定值。
 
3.监控SWAP使用情况
  1. #!/bin/bash 
  2. #Filename:  swap.sh 
  3. #Date:  20120322 
  4. TOTAL=$(free -m | grep "Swap:" | awk '{print $2}') 
  5. USED=$(FREE=$(free -m | grep "Swap:" | awk '{print $3}')) 
  6. FREE=$(free -m | grep "Swap:" | awk '{print $4}') 
  7.  
  8.  
  9. SWAP_per=$(expr $FREE \* 100 / $TOTAL) 
  10. SWAP_warn=50 
  11.  
  12. if [ $SWAP_per -lt $SWAP_warn ]; then 
  13.         echo "当前服务器SWAP空间可用为:$FREE M,剩余不足50%." 
  14. fi 
判断swap使用百分比是否超过设定值,这里可以修改为通过邮件报警
 
4.使用curl判断网站是否能正常访问
  1. #!/bin/bash 
  2. #Filename:      web.sh 
  3. #Date:  20110322 
  4.  
  5. url=${1?"请输入检测的url地址"} 
  6. Status=$(curl -s --head $url | awk '/HTTP/{print $2}') 
  7. [ -z $Status ] && Status=400 
  8. if [ "$Status" -eq 200 ]; then 
  9.         echo "$url能正常访问" 
  10. else 
  11.         echo "$url不能访问,请检查!" 
  12. fi 
PS:
.可以实现通过调用飞信API接口实现短信提示
API接口:http://sms.api.bz/fetion.php?username=13800138000&password=123456&sendto=13912345678&message=短信内容
.
 
以上shell脚本可通过配合crontab实现自动监控。