Files
sanguo_vnpy/research/nas/NAS全自动部署方案.md
2026-04-11 21:18:55 +08:00

327 lines
8.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# NAS 全自动部署方案
## 📋 方案概述
本方案提供完全自动化的 NAS 部署和管理,**零手动干预**,包含以下特性:
- ✅ 开机自动挂载
- ✅ 断线自动重连(每分钟检查)
- ✅ 网络恢复后自动挂载
- ✅ 日志记录和监控
- ✅ 一键管理工具
- ✅ SMB 性能优化
---
## 🚀 快速开始
### 一步部署(推荐)
只需运行一条命令,全自动完成所有配置:
```bash
cd /Users/chufeng/.openclaw/workspace-jiangwei
sudo ./nas_auto_deploy.sh
```
**就这么简单!** 脚本会自动完成:
1. ✅ 检查网络连接
2. ✅ 创建挂载点
3. ✅ 测试挂载
4. ✅ 创建 Launch Daemon 守护进程
5. ✅ 优化 SMB 配置
6. ✅ 启动自动挂载服务
---
## 🛠️ 管理工具
部署完成后,使用 `nas_manager.sh` 进行日常管理:
```bash
cd /Users/chufeng/.openclaw/workspace-jiangwei
./nas_manager.sh status # 查看状态
./nas_manager.sh mount # 手动挂载
./nas_manager.sh umount # 卸载
./nas_manager.sh restart # 重启守护进程
./nas_manager.sh logs # 查看日志
./nas_manager.sh follow # 实时跟踪日志
./nas_manager.sh help # 显示帮助
```
---
## 📁 文件说明
| 文件 | 说明 |
|------|------|
| `nas_auto_deploy.sh` | 全自动部署脚本(只需运行一次) |
| `nas_manager.sh` | 日常管理工具 |
| `nas_mounter.sh` | 自动挂载守护脚本(自动生成) |
| `logs/nas_mount.log` | 挂载日志 |
| `logs/nas_mount_error.log` | 错误日志 |
---
## 🔧 技术原理
### 架构图
```
┌─────────────────────────────────────────────────┐
│ macOS 启动系统 │
└──────────────────┬──────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ Launch Daemon (com.user.nasmount) │
│ - 开机自动运行 │
│ - 每分钟检查一次挂载状态 │
│ - 断线自动重连 │
└──────────────────┬──────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ nas_mounter.sh (挂载守护脚本) │
│ - 检查网络连接 │
│ - 检查挂载状态 │
│ - 执行挂载/重连 │
│ - 创建目录结构 │
└──────────────────┬──────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ NAS (192.168.2.154) │
│ 共享文件夹: stock │
└─────────────────────────────────────────────────┘
```
### Launch Daemon 配置
- **Label**: `com.user.nasmount`
- **运行时机**: 开机自动运行 + 每分钟检查
- **触发条件**: 当 `${MOUNT_POINT}/.mounted` 不存在时触发
- **日志位置**: `logs/nas_mount.log``logs/nas_mount_error.log`
---
## 📊 状态检查示例
运行 `./nas_manager.sh status` 会显示:
```
============================================
NAS 管理工具
============================================
【状态检查】
网络连接: ✅ 正常 (192.168.2.154)
NAS 挂载: ✅ 已挂载
挂载点: /Users/chufeng/nas/stock
【挂载点内容】
total 0
drwx------ 1 chufeng staff 16K Mar 27 23:00 .
drwxr-xr-x 3 chufeng staff 96B Mar 27 23:00 ..
drwx------ 1 chufeng staff 16K Mar 27 23:00 A股数据
drwx------ 1 chufeng staff 16K Mar 27 23:00 回测结果
drwx------ 1 chufeng staff 16K Mar 27 23:00 代码库
drwx------ 1 chufeng staff 16K Mar 27 23:00 临时文件
【Launch Daemon 状态】
✅ 正在运行
【磁盘使用情况】
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
//...@.../stock 10T 500G 9.5T 5% 123456 123456789 0% /Users/chufeng/nas/stock
```
---
## 🔍 日志查看
### 查看最近日志
```bash
./nas_manager.sh logs
```
输出示例:
```
[2026-03-27 23:00:00] 开始挂载 NAS...
[2026-03-27 23:00:01] NAS 挂载成功: /Users/chufeng/nas/stock
[2026-03-27 23:00:01] 创建目录结构...
[2026-03-27 23:00:02] 目录结构创建完成
[2026-03-27 23:01:00] NAS 已挂载,无需操作
[2026-03-27 23:02:00] NAS 已挂载,无需操作
```
### 实时跟踪日志
```bash
./nas_manager.sh follow
```
`Ctrl+C` 退出。
---
## 🛡️ 故障排查
### 问题1: 未自动挂载
**检查步骤:**
```bash
# 1. 查看状态
./nas_manager.sh status
# 2. 查看日志
./nas_manager.sh logs
# 3. 手动挂载测试
./nas_manager.sh mount
```
### 问题2: Launch Daemon 未运行
**重启守护进程:**
```bash
./nas_manager.sh restart
```
### 问题3: 网络中断后未重连
Launch Daemon 会每分钟检查一次,最多等待 1 分钟自动重连。
如需立即重连:
```bash
./nas_manager.sh restart
```
---
## ⚙️ 高级配置
### 修改检查间隔
编辑 `/Library/LaunchDaemons/com.user.nasmount.plist`
```xml
<key>StartInterval</key>
<integer>60</integer> <!-- 修改这个数字(秒) -->
```
然后重启:
```bash
sudo launchctl unload /Library/LaunchDaemons/com.user.nasmount.plist
sudo launchctl load -w /Library/LaunchDaemons/com.user.nasmount.plist
```
### 修改 NAS 配置
编辑 `nas_mounter.sh` 顶部的配置部分:
```bash
NAS_IP="192.168.2.154"
NAS_USER="cfdaily"
NAS_PASS="Ccf7561523"
NAS_SHARE="stock"
MOUNT_POINT="/Users/chufeng/nas/stock"
```
---
## 📋 目录结构
挂载成功后,NAS 会自动创建以下结构:
```
/Users/chufeng/nas/stock/
├── .mounted # 挂载标记文件(自动生成)
├── A股数据/
│ ├── 日线数据/
│ ├── 分钟线数据/
│ └── 财务数据/
├── 回测结果/
│ ├── 策略回测/
│ └── 性能报告/
├── 代码库/
│ ├── 策略代码/
│ └── 工具脚本/
└── 临时文件/
├── 下载缓存/
└── 临时数据/
```
---
## 🎯 完整使用流程
### 第一次部署
```bash
# 1. 进入工作目录
cd /Users/chufeng/.openclaw/workspace-jiangwei
# 2. 运行全自动部署(只需一次)
sudo ./nas_auto_deploy.sh
# 3. 验证状态
./nas_manager.sh status
```
### 日常使用
```bash
# 查看状态
./nas_manager.sh status
# 查看日志
./nas_manager.sh logs
# 实时跟踪
./nas_manager.sh follow
```
### 如需手动干预
```bash
# 手动挂载
./nas_manager.sh mount
# 卸载
./nas_manager.sh umount
# 重启守护进程
./nas_manager.sh restart
```
---
## ✅ 验收清单
部署完成后,确认以下项目:
- [ ] 运行 `sudo ./nas_auto_deploy.sh` 无错误
- [ ] `./nas_manager.sh status` 显示 NAS 已挂载
- [ ] `ls -la /Users/chufeng/nas/stock` 可以看到目录结构
- [ ] 重启 Mac 后 NAS 自动挂载
- [ ] 断开网络再恢复后,1 分钟内自动重连
---
## 📞 获取帮助
如遇问题:
1. 查看日志:`./nas_manager.sh logs`
2. 检查状态:`./nas_manager.sh status`
3. 重启守护:`./nas_manager.sh restart`
---
**文档版本**: 1.0
**最后更新**: 2026年3月27日
**作者**: 姜维 伯约