监测服务器内存、磁盘、cpu、swap的脚本

发布时间:2020-10-15编辑:脚本学堂
本文分享下,一个可以监测服务器的内存、磁盘信息、cpu以及swap空间的shell脚本,有需要的朋友参考下。

分享一段shell 脚本,用于监测服务器的内存、磁盘信息、cpu以及swap空间。

代码:
 

复制代码 代码示例:

#!/bin/bash
#filename:monitor_server.sh

MAILLIST=test123@jb200.com    #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" | linuxjishu/13830.html target=_blank class=infotextkey>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

您可能感兴趣的文章:
几个shell自动化脚本(定期清理、磁盘空间、搜寻关键字)
shell磁盘监控及报警的脚本
提取磁盘IO与系统负载Load的shell脚本
监控linux中CPU 内存 磁盘数据的shell脚本(图文)
监视远程磁盘的健康情况的shell脚本
磁盘空间使用状况检测脚本
linux 查看磁盘IO状态的方法
监控磁盘空间使用率的脚本