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