Linux监控脚本:实时检测CPU使用并邮件报警

5星 · 超过95%的资源 需积分: 41 36 下载量 15 浏览量 更新于2024-09-18 收藏 354B TXT 举报
本文档介绍了一个Linux监控CPU使用率的简单bash脚本,主要用于实时检测系统CPU的占用情况,并在CPU负载超过阈值(本例中是50%)时发送邮件通知。以下是脚本的主要部分及其工作原理的详细解释: 1. **脚本文件头部**: 脚本以#!/bin/bash开始,这是告诉系统使用bash shell来执行此脚本。 2. **输出文件定义**: OUTFILE=/temp/capture.txt被设置为日志文件的路径,用于记录每次CPU使用率的检查结果和时间戳。 3. **日期和时间获取**: DATE=`date +%Y%m%d`获取当前日期,用四位年份、两位月份和两位日期组成;TIME=`date +%k:%m`获取当前小时和分钟,以24小时制和冒号分隔。 4. **CPU使用率监测**: `top -b -n1 | grep -w "Cpu" | awk '{print $5}' | awk -F '%' '{printf "%d",$1}'`这一行是关键部分,通过运行top命令获取实时CPU使用情况,仅取CPU列(通常是第5个字段),然后使用awk去除百分比符号并提取整数值。 5. **条件判断与操作**: if语句检查CPU使用率是否低于或等于50%(`[ $cpu -le 50 ]`)。如果满足条件,脚本将记录CPU使用率、当前日期和时间到指定的文本文件,并使用mutt发送邮件通知。邮件的主题是"message",收件人地址是mailaddress@qq.com,邮件附件包括刚刚创建的日志文件。 6. **异常处理**: 如果CPU使用率超过50%,脚本输出"No, problem",表示没有问题或未达到触发邮件发送的阈值。 这个脚本提供了一个基础的监控手段,适用于日常维护或自动化运维环境中,以便及时发现CPU负载过高的情况。通过定制邮件主题和收件人,可以根据需求调整提醒策略。同时,脚本可以通过定期cron任务运行,实现定时检查,确保系统的稳定运行。为了更全面的监控,还可以结合其他工具如sysstat或Nagios等进行更深入的性能分析和警报设置。