编写监控脚本sysmon.sh,存在异常时邮件告警
时间: 2024-09-06 20:04:59 浏览: 14
编写一个名为`sysmon.sh`的系统监控脚本,通常用于定期检查系统的各项指标,如CPU使用率、内存使用、磁盘空间等,当检测到异常情况时发送邮件告警,可以分为以下几个步骤:
1. **安装必要的工具**:
- `cron`:系统任务调度器,用于定时运行脚本。
- `mailx` 或其他邮件客户端:用于发送电子邮件。
- `grep`, `awk`, `top` 等命令行工具:用于处理数据和检测异常。
2. **脚本内容**:
```bash
#!/bin/bash
# 定义变量:检查点和阈值
CPU_THRESHOLD=80
DISK_USAGE_THRESHOLD=90
MEMORY_THRESHOLD=75
# 检查CPU使用率
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}' | sed 's/,//')
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
echo "警告:CPU使用率超过$CPU_THRESHOLD%" | mail -s "系统监控:CPU过高" your-email@example.com
fi
# 检查磁盘使用率
DISK_USAGE=$(df / | tail -n1 | awk '{print $5}' | sed 's/%//')
if (( $(echo "$DISK_USAGE > $DISK_USAGE_THRESHOLD" | bc -l) )); then
echo "警告:磁盘使用率超过$DISK_USAGE_THRESHOLD%" | mail -s "系统监控:磁盘空间不足" your-email@example.com
fi
# 检查内存使用率
MEMORY_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
if (( $(echo "$MEMORY_USAGE > $MEMORY_THRESHOLD" | bc -l) )); then
echo "警告:内存使用率超过$MEMORY_THRESHOLD%" | mail -s "系统监控:内存占用过高" your-email@example.com
fi
# 添加到crontab
# 每五分钟检查一次(可根据需求调整)
crontab -e
echo "@每5分钟 * * * * /path/to/sysmon.sh" >> crontab
```
3. **启用邮件通知**:
确保邮件服务已经设置好,并将`your-email@example.com`替换为你实际的邮件地址。