# 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日  
**作者**: 姜维 伯约
