# disk_monitor **Repository Path**: xy506/disk_monitor ## Basic Information - **Project Name**: disk_monitor - **Description**: No description available - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-21 - **Last Updated**: 2026-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 磁盘监控和自动挂载脚本 这是一个功能完整的磁盘监控和自动挂载系统,能够检测磁盘掉盘情况并自动重新挂载。 ## 功能特性 - 🔍 **自动检测**: 首次运行时自动检测当前挂载的磁盘和分区 - 📝 **配置管理**: 将磁盘信息保存到配置文件,支持手动编辑 - ⏰ **定时监控**: 自动添加计划任务,默认每10分钟检查一次 - 🔄 **自动挂载**: 发现掉盘后按配置文件自动重新挂载 - 🛠️ **交互式配置**: 提供友好的配置编辑界面 - 📊 **状态监控**: 实时显示磁盘状态和监控信息 - 📋 **日志记录**: 详细的操作日志记录 ## 文件结构 ``` disk_monitor.sh # 主脚本文件 disk_config.conf # 配置文件(首次运行后生成) disk_monitor.log # 日志文件 functions/ # 功能模块目录 ├── detect_disks.sh # 磁盘检测功能 ├── mount_manager.sh # 挂载管理功能 └── config_editor.sh # 配置编辑功能 README.md # 说明文档 ``` ## 快速开始 ### 1. 首次运行 - 初始化配置 ```bash sudo ./disk_monitor.sh --init ``` 这个命令会: - 检测当前挂载的磁盘和分区 - 生成配置文件 `disk_config.conf` - 显示检测到的磁盘信息 ### 2. 添加定时任务 ```bash sudo ./disk_monitor.sh --add-cron ``` 这会添加一个每10分钟执行一次的定时任务。 ### 3. 查看当前状态 ```bash sudo ./disk_monitor.sh --status ``` 显示所有配置的磁盘状态。 ## 详细使用说明 ### 命令行选项 ```bash ./disk_monitor.sh [选项] 选项: -h, --help 显示帮助信息 -i, --init 初始化配置(检测当前挂载并保存配置) -m, --monitor 执行监控检查 -c, --config 手动编辑配置 -s, --status 显示当前状态 -a, --add-cron 添加定时任务 -r, --remove-cron 移除定时任务 -l, --list-cron 显示当前定时任务 ``` ### 配置文件格式 配置文件 `disk_config.conf` 使用以下格式: ``` DEVICE|MOUNT_POINT|FILESYSTEM|OPTIONS|ENABLED ``` 字段说明: - **DEVICE**: 设备路径(支持 `/dev/sda1`、`UUID=xxx`、`LABEL=xxx` 格式) - **MOUNT_POINT**: 挂载点路径 - **FILESYSTEM**: 文件系统类型(如 ext4、xfs、ntfs等) - **OPTIONS**: 挂载选项(如 defaults、rw、noatime等) - **ENABLED**: 是否启用监控(1=启用,0=禁用) 示例配置: ``` UUID=12345678-1234-1234-1234-123456789012|/mnt/data|ext4|defaults|1 /dev/sdb1|/mnt/backup|xfs|defaults,noatime|1 LABEL=MyDisk|/mnt/mydisk|ntfs|defaults,uid=1000,gid=1000|0 ``` ### 交互式配置编辑 运行配置编辑器: ```bash sudo ./disk_monitor.sh --config ``` 配置编辑器提供以下功能: 1. 查看当前配置 2. 添加磁盘配置 3. 编辑磁盘配置 4. 启用/禁用磁盘监控 5. 删除磁盘配置 6. 备份/恢复配置 ## 监控和日志 ### 手动执行监控 ```bash sudo ./disk_monitor.sh --monitor ``` ### 查看日志 ```bash tail -f disk_monitor.log ``` 日志包含以下信息: - 磁盘检测结果 - 挂载/卸载操作 - 错误和警告信息 - 监控统计信息 ### 定时任务管理 查看当前定时任务: ```bash sudo ./disk_monitor.sh --list-cron ``` 移除定时任务: ```bash sudo ./disk_monitor.sh --remove-cron ``` ## 使用场景 ### 1. 服务器磁盘监控 适用于需要监控多个数据盘的服务器环境。 ### 2. NAS系统 适用于家庭或小型办公室的NAS系统磁盘管理。 ### 3. 移动存储设备 适用于经常插拔USB设备的环境。 ## 注意事项 1. **权限要求**: 脚本需要root权限运行 2. **系统兼容性**: 支持大多数Linux发行版 3. **依赖检查**: 脚本会自动检查必要的系统命令 4. **安全考虑**: 建议在测试环境中先验证配置 ## 故障排除 ### 常见问题 1. **设备不存在错误** - 检查设备路径是否正确 - 确认设备是否已连接 - 使用 `lsblk` 命令查看可用设备 2. **挂载失败** - 检查挂载点目录是否存在 - 确认文件系统类型是否正确 - 查看系统日志 `/var/log/messages` 3. **权限问题** - 确保以root用户运行脚本 - 检查挂载点目录权限 ### 调试模式 启用详细输出: ```bash sudo ./disk_monitor.sh --monitor --verbose ``` ## 更新和维护 ### 备份配置 配置编辑器提供自动备份功能,也可以手动备份: ```bash cp disk_config.conf disk_config.conf.backup ``` ### 更新脚本 更新脚本时建议先备份配置文件,然后重新初始化。 ## 技术支持 如果遇到问题,请: 1. 查看日志文件 `disk_monitor.log` 2. 检查系统日志 3. 验证配置文件格式 4. 确认系统依赖是否完整 ## 许可证 本脚本采用MIT许可证,可自由使用和修改。