如何在 CentOS 系统中使用 shell 脚本实时监控磁盘多路径系统的状态?
时间: 2024-12-26 22:30:09 浏览: 9
在 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 机制。
阅读全文