Linux SUSE下使用监控空间使用情况,并发送邮件告知
1.选择目录创建脚本文件:
2.赋予脚本可执行权限
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
我这里配置是每个30分钟执行一次该脚本
5.到这里就完成了,为测试,可以配置成每分钟执行一次,然后去看日志输出。