监测服务器磁盘空间。

监测 根目录/:不能小于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

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部