写个检测cpu和内存的shell脚本,带邮件报警功能
时间: 2023-08-10 11:55:46 浏览: 43
当然,我可以帮你写一个检测 CPU 和内存 Shell 脚本,并且带有邮件报警功能。以下是示例代码```bash
#!/bin/bash
# 设置 CPU 和存阈值(可根据需要进行调整)
CPU_THRESHOLD=80
MEMORY_THRESHOLD=80
# 获取当前 CPU 使用率和内存使用率
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
MEMORY_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
# 检查 CPU 使用率是否超过阈值
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
SUBJECT="CPU 使用率过高"
MESSAGE="当前 CPU 使用率为: $CPU_USAGE%"
echo $MESSAGE | mail -s "$SUBJECT" your-email@example.com
fi
# 检查内存使用率是否超过阈值
if (( $(echo "$MEMORY_USAGE > $MEMORY_THRESHOLD" | bc -l) )); then
SUBJECT="内存使用率过高"
MESSAGE="当前内存使用率为: $MEMORY_USAGE%"
echo $MESSAGE | mail -s "$SUBJECT" your-email@example.com
fi
```
请注意,上面的代码中的 `your-email@example.com` 需要替换为你的实际邮箱地址。此脚本将检测 CPU 使用率和内存使用率,如果超过指定的阈值,将发送邮件报警。
你可以将此脚本保存为 `monitor.sh` 文件,并设置为可执行权限(`chmod +x monitor.sh`)。然后,可以使用 Cron 等工具定期运行此脚本,以进行 CPU 和内存的监控。