Linux SUSE下使用监控空间使用情况,并发送邮件告知

1.选择目录创建脚本文件:

Linux SUSE下使用监控空间使用情况,并发送邮件告知

2.赋予脚本可执行权限

Linux SUSE下使用监控空间使用情况,并发送邮件告知

3.vim test.sh编辑脚本,粘贴如下内容:

#!/bin/bash
#author:jgd
#Date:2017-09-15
#自动检测home目录空间,超过82%时邮件通知并清理日志


# ---- Start ----


#获取目录空间大小
sizeAll=$(df -h | grep home | awk '{print $2}')


#获取目录空间已使用大小
sizeUsed=$(df -h | grep home | awk '{print $3}')


#获取目录空间可用大小
sizeAvail=$(df -h | grep home | awk '{print $4}')


#获取目录已使用百分比
usedPercent=$(df -h | grep home | awk '{print $5}')


#清理项目及tomcat日志脚本路径
cleanProject=/home/zyj13424063620/myshell/auto-del-tp-log-2-day.sh


# 日志输出  
MonitorLog=/home/zyj13424063620/myshell/logs/monitor/homeSpaceMonitor.log


#服务器号
serverNum=04


#阈值
warnNum=82


Monitor() 
{
  echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
  echo "[info]目录空间总大小$sizeAll"
  echo "[info]目录空间已使用大小$sizeUsed"
  echo "[info]目录空间可用大小$sizeAvail"
  echo "[info]目录空间已使用$usedPercent" 
  echo "[info]设定阈值$warnNum%"
  if [ ${usedPercent%%%} -gt $warnNum ];then
    echo "[info]开始清理工程及tomcat日志..."
    echo "[info]只保留三天..."
    echo "[info]开始清理..."
    $cleanProject
    echo "[info]清理完成!!!"
    afterCleanUsedPercent=$(df -h | grep home | awk '{print $5}')
    echo "[info]清理后已使用空间大小为$afterCleanUsedPercent"
    if [ ${afterCleanUsedPercent%%%} -gt $warnNum ];then
      echo "[warning]清理后磁盘空间仍大于$warnNum%"
      echo "[info]准备发送邮件给工程师处理..."
      echo -e "工程师,您好:\n  资源池$serverNum号服务器home目录空间不足。具体信息:设置阈值为$warnNum%,自动处理前目录空间已用$usedPercent,自动处理后已用$afterCleanUs
edPercent。自动处理未能达到释放空间效果。请及时处理!!!\n  mm安全中心业务侧预警脚本自动发送\n  此致,敬礼" | mail -s "Warming:ResourcePool-Num$serverNum-Server" [email protected]
       echo "[info]已发送邮件给工程师处理"
    else
      echo -e "工程师,您好:\n  资源池$serverNum号服务器home目录空间不足,已自动清理。具体信息:设置阈值为$warnNum%, 自动处理前目录空间已用$usedPercent,自动处理后已用$
afterCleanUsedPercent。自动处理降到$warnNum%以下。请留意观察!!!\n  mm 安全中心业务侧预警脚本自动发送\n  此致,敬礼" | mail -s "Warming:ResourcePool-Num$serverNum-Se
rver" [email protected],[email protected]
      echo "[info]自动清理后空间已使用大小为$afterCleanUsedPercent"
    fi
  else
    echo "[info]目录空间未超过阈值"
  fi
  echo "------------------------------"
}

Monitor >>$MonitorLog

4.保存退出,添加定时器,命令crontab -e

Linux SUSE下使用监控空间使用情况,并发送邮件告知

我这里配置是每个30分钟执行一次该脚本

5.到这里就完成了,为测试,可以配置成每分钟执行一次,然后去看日志输出。