监测服务器内存、磁盘、cpu、swap的脚本
分享一段shell 脚本,用于监测服务器的内存、磁盘信息、cpu以及swap空间。
代码:
#!/bin/bash
#filename:monitor_server.sh
MAILLIST=test123@jquerycn.cn #emailist
MEM_CORDON=100 #内存使用大于这个值报警
SWAP_CORDON=50 #交换区使用值大于这个报警
CPU_CORDON=5 #cpu空闲小于这个值报警
DISK_CORDON=85 #磁盘占用大于这个值报警
HOSTNAME=`hostname`
DATA=`date`
send_warning()
{
echo $MESSAGE | /bin/mail -s "$TITLE" "$MAILLIST"
}
if [ $# -ne 0 ];then
DISK_DIR=$1
else
DISK_DIR="/dev/sdb1"
fi
#MEM|SWAP check
MEMSTATUS=`free | grep "Mem" | awk '{printf("%d", $3*100/$2)}'`
SWAPSTATUS=`free | grep "Swap" | awk '{printf("%d", $3*100/$2)}'`
if [ $MEMSTATUS -ge $MEM_CORDON ];then
TITLE="[bad_girl]:$HOSTNAME mem usage"
MESSAGE="Time:${DATA},Mem_used:${MEMSTATUS}%,Swap_used:${SWAPSTATUS}%"
send_warning
fi
if [ $SWAPSTATUS -ge $SWAP_CORDON ];then
TITLE="[bad_girl]:$HOSTNAME Swap usage"
MESSAGE="Time:${DATA},Mem_used:${MEMSTATUS}%,Swap_used:${SWAPSTATUS}%"
send_warning
fi
#cpu
CPUSTATUS=`vmstat | awk '{print $15}' | tail -1`
if [ $CPUSTATUS -le $CPU_CORDON ];then
TITLE="[bad_girl]:$HOSTNAME cpu usage"
MESSAGE="Time:${DATA},MCpu_free:${CPUSTATUS}%"
fi
#disk use n%
DISKSTATUS=`df -h $DISK_DIR | awk '{print $5}' | tail -1 | tr -d %`
if [ $DISKSTATUS -ge $DISK_CORDON ];then
TITLE="[bad_girl]:$HOSTNAME disk usage"
MESSAGE="Time:${DATA},Disk_used:${DISKSTATUS}%"
send_warning
fi
您可能感兴趣的文章:
监测服务器内存、磁盘、cpu、swap的脚本
php记录服务器负载、内存、cpu状态的代码
监控linux中CPU 内存 磁盘数据的shell脚本(图文)
决定squid反向代理的性能要素
监控linux服务器性能的shell脚本
监测linux系统负载与CPU、内存、硬盘、用户数的shell脚本
php中使用proc/loadavg监控CPU的平均负载
php获取linux服务器CPU、内存、硬盘使用率的实现代码
监控Linux系统内存的shell脚本(图文)
MySQL性能调优和使用新手必读教程