监测服务器磁盘空间。
监测 根目录/:不能小于8G、/home:不能小于1T 、并发送邮件
。
配置发送邮件点这个→linux配置邮箱服务器,及各种邮件报错问题!以下脚本涉及单位换算
vim space.sh
#!/bin/bash
# 设置报警阈值(根目录至少8G)
ROOT_THRESHOLD=8 # 8GB
DISK_THRESHOLD=1024 # 1TB = 1024GB
# 获取当前时间
CURRENT_TIME=$(date "+%Y-%m-%d %H:%M:%S")
# 获取根目录 (/) 和 /home 目录的剩余空间以及单位
ROOT_AVAILABLE=$(df -h / | grep '/' | awk '{print $4}')
HOME_AVAILABLE=$(df -h /home | grep '/home' | awk '{print $4}')
# 提取数值和单位
ROOT_SIZE=$(echo $ROOT_AVAILABLE | sed 's/[A-Za-z]*//g')
ROOT_UNIT=$(echo $ROOT_AVAILABLE | sed 's/[0-9.]//g')
HOME_SIZE=$(echo $HOME_AVAILABLE | sed 's/[A-Za-z]*//g')
HOME_UNIT=$(echo $HOME_AVAILABLE | sed 's/[0-9.]//g')
# 将单位转换为GB
if [[ $ROOT_UNIT == "T" ]]; then
ROOT_SIZE=$(echo "$ROOT_SIZE * 1024" | bc)
fi
if [[ $HOME_UNIT == "T" ]]; then
HOME_SIZE=$(echo "$HOME_SIZE * 1024" | bc)
fi
# 检查根目录是否小于8GB,/home目录是否小于1TB(1024GB)
if [ $(echo "$ROOT_SIZE < $ROOT_THRESHOLD" | bc) -eq 1 ] || [ $(echo "$HOME_SIZE < $DISK_THRESHOLD" | bc) -eq 1 ]; then
# 发送报警邮件
mail_content="当前时间为:$CURRENT_TIME\n/ 目录剩余${ROOT_AVAILABLE}\n/home 目录:剩余${HOME_AVAILABLE}\n\n请及时处理!"
echo -e "$mail_content" | mailx -s "222空间预警!" yy@yyyyy.com 53333@qq.com
fi
以下两种方式,尝试给邮件配置展示格式,我的设备没环境, 没测试
1. 突出显示“请及时处理!”这几个字
# 发送报警邮件
#mail_content="<html><body>当前时间为:$CURRENT_TIME<br><br>/ 目录剩余${ROOT_AVAILABLE}<br>/home 目录剩余${HOME_AVAILABLE}<br><br><b><span style='font-size:16px;color:red;'>请及时处理!</span></b></body></html>"
#echo -e "$mail_content" | mailx -a "Content-type: text/html" -s "205空间预警!" yy@yyyyy.com 53333@qq.com
2. 使用 sendmail 发送HTML格式的报警邮件
# (
# echo "Subject: 222空间预警!"
# echo "To: yy@yyyyy.com,53333@qq.com"
# echo "MIME-Version: 1.0"
# echo "Content-Type: text/html"
# echo ""
# echo "<html><body>当前时间为:$CURRENT_TIME<br><br>/ 目录:${ROOT_AVAILABLE}<br>/home 目录:${HOME_AVAILABLE}<br><br><b><span style='font-size:16px;color:red;'>请及时处理!</span></b></body></html>"
# ) | sendmail -t
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 服务器空间监控,并发送邮件
发表评论 取消回复