使用centos系统编写一个磁盘占用到百分之八十自动告警的shell脚本
时间: 2024-04-30 19:17:36 浏览: 150
好的,以下是一个实现磁盘占用到80%自动告警的shell脚本:
```bash
#!/bin/bash
# 获取磁盘使用情况
disk_usage=$(df -h / | awk 'NR==2{print $5}')
# 获取当前时间
current_time=$(date +"%Y-%m-%d %H:%M:%S")
# 判断磁盘使用情况是否超过80%
if [[ "${disk_usage//\%}" -ge 80 ]]; then
# 发送告警邮件
echo "磁盘使用情况已超过80%,请及时处理!" | mail -s "磁盘告警" your_email@example.com
# 记录告警日志
echo "${current_time} 磁盘使用情况已超过80%,已发送告警邮件。" >> /var/log/disk_alert.log
fi
```
脚本说明:
- 使用 `df -h /` 命令获取根目录的磁盘使用情况,并使用 `awk` 提取出使用百分比。
- 使用 `${disk_usage//\%}` 去掉百分号,再使用 `-ge` 判断是否超过80%。
- 如果超过80%,则使用 `mail` 命令发送告警邮件,并使用 `>>` 追加记录告警日志到 `/var/log/disk_alert.log` 文件中。
相关问题
请帮我写一个centos7系统获取磁盘使用率,磁盘IO及cpu负载、网络IO使用率的shell脚本
好的,以下是获取磁盘使用率、磁盘IO、CPU负载和网络IO使用率的shell脚本:
```bash
#!/bin/bash
# 获取磁盘使用率
df -h
# 获取磁盘IO
iostat -x 1
# 获取CPU负载
top -b -n1 | grep "load average"
# 获取网络IO使用率
sar -n DEV 1 1
```
使用方法:
1. 将以上代码复制到一个名为 `monitor.sh` 的文件中。
2. 给文件添加可执行权限:`chmod +x monitor.sh`。
3. 在终端中执行:`./monitor.sh`。
以上脚本会依次输出磁盘使用率、磁盘IO、CPU负载和网络IO使用率的信息。如果想要定期获取这些信息,可以将脚本加入到定时任务中执行。
如何在 CentOS 系统中使用 shell 脚本实时监控磁盘多路径系统的状态?
在 CentOS 系统中,你可以通过编写 shell 脚本来实时监控磁盘多路径系统(如 dm_multipathd 或 LVS)的状态。以下是简单的步骤:
1. **创建脚本**:
创建一个新文件,例如 `mpath_status.sh`,并添加以下内容,使用 `multipath -ll` 命令获取多路径设备的信息,然后使用 `grep` 和 `awk` 进行解析:
```bash
#!/bin/bash
# 获取多路径信息
status=$(multipath -ll)
# 使用 grep 和 awk 提取重要字段
device="$(echo "$status" | grep "^\[[0-9]\]" | awk '{print $1}')
health="$(echo "$status" | grep "^\[[0-9]\]" | awk '{print $NF}')
echo "Device: $device"
echo "Health: $health"
# 如果需要定期检查,可以设置循环,并加上定时器(例如每分钟)
while true; do
sleep 60
device_status=$(multipath -ll)
# 更新当前状态
current_device="$(echo "$device_status" | grep "^\[[0-9]\]" | awk '{print $1}')
current_health="$(echo "$device_status" | grep "^\[[0-9]\]" | awk '{print $NF}')
if [ "$current_device" != "$device" ] || [ "$current_health" != "$health" ]; then
echo "Status changed:"
echo "Device: $current_device"
echo "Health: $current_health"
device="$current_device"
health="$current_health"
fi
done
```
2. **赋予脚本执行权限**:
`chmod +x mpath_status.sh`
3. **运行脚本**:
`./mpath_status.sh &` (在后台运行)
4. **日志管理**:
可能还需要配置 log 文件记录状态变化,如果需要,可以在脚本中添加相应的 logging 机制。
阅读全文