使用shell脚本编写cpu超过阈值就告警
时间: 2023-06-15 12:03:27 浏览: 79
可以通过shell脚本和Linux系统自带的工具来实现CPU使用率超过阈值的告警。下面是一个简单的示例:
```bash
#!/bin/bash
# 设置CPU使用率阈值
THRESHOLD=90
# 获取当前CPU使用率
CPU=$(top -b -n 1 | grep "Cpu(s)" | awk '{print $2}' | cut -d "." -f 1)
# 判断CPU使用率是否超过阈值
if [ "$CPU" -gt "$THRESHOLD" ]; then
echo "CPU使用率已超过阈值!当前使用率为:${CPU}%"
# 发送告警邮件或采取其他告警措施
fi
```
该脚本首先设置了CPU使用率的阈值为90%,然后通过`top`命令获取当前CPU使用率,并使用`awk`和`cut`命令提取出整数部分。接着,判断CPU使用率是否超过阈值,如果超过,则输出告警信息并采取相应的告警措施,例如发送告警邮件。你可以根据实际需求进行修改和扩展。
相关问题
linux编写shell脚本计算cpu使用率
以下是一个简单的Shell脚本,用于计算CPU使用率:
```
#!/bin/bash
# 计算CPU使用率
cpu_file="/proc/stat"
prev_total=0
prev_idle=0
# 获取CPU使用情况
get_cpu_info() {
read -r cpu user nice system idle iowait irq softirq steal guest guest_nice < "$cpu_file"
total=$((user + nice + system + idle + iowait + irq + softirq + steal))
idle=$((idle + iowait))
}
# 计算CPU使用率
calc_cpu_usage() {
get_cpu_info
total_diff=$((total - prev_total))
idle_diff=$((idle - prev_idle))
cpu_usage=$((100 * (total_diff - idle_diff) / total_diff))
prev_total=$total
prev_idle=$idle
}
while true; do
calc_cpu_usage
echo "CPU使用率: $cpu_usage%"
sleep 1
done
```
该脚本使用`/proc/stat`文件获取CPU使用情况,并计算CPU使用率。脚本使用`while`循环不断计算CPU使用率,并使用`sleep`函数每秒打印CPU使用率。
写一个redhat linux主机上监控cpu/内存/文件系统使用率的shell脚本,设置告警阈值
以下是一个用Shell脚本编写的可监控RedHat Linux主机上CPU、内存和文件系统使用率的例子,并设置告警阈值:
```shell
#!/bin/bash
# 设置告警阈值
cpu_threshold=85 # CPU 使用率阈值,超过85%触发告警
mem_threshold=90 # 内存使用率阈值,超过90%触发告警
fs_threshold=80 # 文件系统使用率阈值,超过80%触发告警
# 获取 CPU 使用率
cpu_usage=$(top -bn 2 -d 0.01 | grep '^%Cpu' | tail -n 1 | awk '{print $2}' | cut -d'%' -f1)
echo "CPU 使用率:$cpu_usage%"
# 监控 CPU 使用率
if (( cpu_usage >= cpu_threshold )); then
echo "CPU 使用率超过阈值!触发告警!"
# 在此处编写触发告警的动作,例如发送邮件或者调用其他程序
fi
# 获取内存使用率
mem_usage=$(free -m | awk 'NR==2{printf "%.2f\n", $3*100/$2}')
echo "内存使用率:$mem_usage%"
# 监控内存使用率
if (( mem_usage >= mem_threshold )); then
echo "内存使用率超过阈值!触发告警!"
# 在此处编写触发告警的动作,例如发送邮件或者调用其他程序
fi
# 获取文件系统使用率
fs_usage=$(df -h | awk '$NF=="/"{printf "%s\n", $5}' | cut -d'%' -f1)
echo "文件系统使用率:$fs_usage%"
# 监控文件系统使用率
if (( fs_usage >= fs_threshold )); then
echo "文件系统使用率超过阈值!触发告警!"
# 在此处编写触发告警的动作,例如发送邮件或者调用其他程序
fi
```
使用以上脚本,你可以定期(例如每5分钟)运行一次,以监控系统的CPU、内存和文件系统使用情况,并在达到设定的阈值时触发告警动作。你可以在触发告警的部分编写相应的动作,如发送邮件给管理员或其他预定的操作。