forked from DevOps/deploy.stack
98 lines
3.0 KiB
Markdown
98 lines
3.0 KiB
Markdown
|
|
# 硬盘巡检脚本使用说明
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
本脚本使用Python实现了基于smartctl的硬盘巡检功能,可以检查多个megaraid控制器下的硬盘健康状态,并生成格式化的Markdown报告。同时支持通过MCP协议将报告提交给AI进行分析。
|
|||
|
|
|
|||
|
|
## 功能特点
|
|||
|
|
|
|||
|
|
1. 自动检测指定设备上的多个megaraid控制器
|
|||
|
|
2. 收集每个控制器的SMART信息
|
|||
|
|
3. 解析并提取关键健康指标
|
|||
|
|
4. 生成清晰易读的Markdown格式报告
|
|||
|
|
5. 支持通过MCP协议将报告提交给AI分析
|
|||
|
|
|
|||
|
|
## 前提条件
|
|||
|
|
|
|||
|
|
1. 需要root权限运行
|
|||
|
|
2. 系统已安装smartmontools工具包
|
|||
|
|
- Ubuntu/Debian: `apt install smartmontools`
|
|||
|
|
- CentOS/RHEL: `yum install smartmontools`
|
|||
|
|
3. 如需使用MCP功能,需要安装MCP客户端
|
|||
|
|
|
|||
|
|
## 使用方法
|
|||
|
|
|
|||
|
|
### 直接运行
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 以root权限运行脚本
|
|||
|
|
sudo python3 /home/geng/mydate/deploy.stack/crontab/disk_inspection.py
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 添加到cron任务(定期执行)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 编辑crontab配置
|
|||
|
|
sudo crontab -e
|
|||
|
|
|
|||
|
|
# 添加如下内容(每天凌晨2点执行)
|
|||
|
|
0 2 * * * python3 /home/geng/mydate/deploy.stack/crontab/disk_inspection.py >> /var/log/disk_inspection.log 2>&1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 输出文件
|
|||
|
|
|
|||
|
|
1. **日志文件**: `/root/smartctl.日期.log` - 原始的SMART信息日志
|
|||
|
|
2. **报告文件**: `/root/disk_inspection_report.日期.md` - 格式化的Markdown报告
|
|||
|
|
3. **MCP数据文件**: `/root/mcp_data_日期.json` - 准备提交给MCP的数据
|
|||
|
|
|
|||
|
|
## 通过MCP提交给AI分析
|
|||
|
|
|
|||
|
|
脚本会自动准备好MCP格式的数据,并提示您如何提交。具体步骤:
|
|||
|
|
|
|||
|
|
1. 确保您的系统中已安装MCP客户端工具
|
|||
|
|
2. 使用如下命令提交数据(根据您的MCP客户端实际情况调整):
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 示例命令
|
|||
|
|
mcp_client submit --file /root/mcp_data_日期.json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 自定义配置
|
|||
|
|
|
|||
|
|
您可以修改脚本中的以下参数来适应您的环境:
|
|||
|
|
|
|||
|
|
- `device`: 要检查的硬盘设备(默认:`/dev/sda`)
|
|||
|
|
- `controller_count`: megaraid控制器数量(默认:8)
|
|||
|
|
- `log_dir`: 日志和报告保存目录(默认:`/root`)
|
|||
|
|
|
|||
|
|
## 报告内容说明
|
|||
|
|
|
|||
|
|
生成的Markdown报告包含以下内容:
|
|||
|
|
|
|||
|
|
1. **基本信息**: 检查日期、设备名称
|
|||
|
|
2. **健康状态概览**: 总控制器数、健康和异常控制器数量统计
|
|||
|
|
3. **详细信息表格**: 每个控制器的型号、序列号、固件版本、健康状态和温度
|
|||
|
|
4. **异常详情**: 有问题的控制器的详细信息
|
|||
|
|
5. **建议**: 根据检查结果提供的维护建议
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. 请确保定期执行此脚本,以便及时发现潜在的硬盘问题
|
|||
|
|
2. 重要数据请始终保持备份
|
|||
|
|
3. 如发现硬盘异常,请密切关注并考虑及时更换
|
|||
|
|
4. MCP功能需要正确配置MCP客户端才能使用
|
|||
|
|
|
|||
|
|
## 故障排除
|
|||
|
|
|
|||
|
|
- **问题**: 运行脚本时提示权限错误
|
|||
|
|
**解决**: 使用sudo或以root用户运行脚本
|
|||
|
|
|
|||
|
|
- **问题**: 找不到smartctl命令
|
|||
|
|
**解决**: 安装smartmontools工具包
|
|||
|
|
|
|||
|
|
- **问题**: MCP提交失败
|
|||
|
|
**解决**: 检查MCP客户端是否正确安装和配置
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
创建日期: " + datetime.datetime.now().strftime("%Y-%m-%d") + "
|