帮我写个代码shell语句,对服务器的CPU、磁盘使用率、内存使用率进行周期性检测,遇到超过60%的发出提示。
时间: 2024-02-28 16:52:17 浏览: 17
好的,以下是一个 Shell 脚本示例,可以对服务器的 CPU、磁盘使用率、内存使用率进行周期性检测,并在达到超过 60% 时发出提示。
```sh
#!/bin/bash
while true
do
# 获取 CPU 使用率
cpu_percent=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
if (( $(echo "$cpu_percent > 60" | bc -l) )); then
echo "CPU 使用率超过 60%"
fi
# 获取磁盘使用率
disk_percent=$(df -h | awk '$NF=="/"{printf "%d\n", $5}')
if (( $disk_percent > 60 )); then
echo "磁盘使用率超过 60%"
fi
# 获取内存使用率
mem_percent=$(free | awk '/Mem/{printf "%d", $3/$2*100}')
if (( $mem_percent > 60 )); then
echo "内存使用率超过 60%"
fi
# 等待 5 秒再进行下一次检测
sleep 5
done
```
这段代码使用了 top、df 和 free 命令来获取系统的 CPU、磁盘和内存使用率。在代码中,我们循环获取这些信息,并与 60% 进行比较。如果超过 60%,就打印出提示信息。在每次检测之间,我们等待 5 秒钟,以避免过于频繁地检测。注意,为了比较浮点数,我们使用了 bc 命令。