# 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
StartInterval
60
```
然后重启:
```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日
**作者**: 姜维 伯约