# 计划任务、备份与升级

> Radar 定时、备份、后续完整包升级

# 29. Paper Radar 宝塔计划任务

先查 Node 路径：

```bash
command -v node
command -v npm
dirname "$(command -v node)"
```

宝塔 Node 常见不是 `/usr/bin/npm`，可能是：

```text
/www/server/nodejs/v22.x.x/bin
```

进入：

```text
宝塔 → 计划任务 → Shell 脚本
```

例如每天 08:00：

```bash
export PATH=/www/server/nodejs/v22.x.x/bin:$PATH
cd /www/wwwroot/graduate-os
npm run radar:update >> /www/wwwroot/graduate-os/logs/radar.log 2>&1
```

把 Node 路径换成你服务器真实结果。

测试后查看：

```bash
tail -n 100 /www/wwwroot/graduate-os/logs/radar.log
```

---


# 30. 备份

手动：

```bash
cd /www/wwwroot/graduate-os
chmod +x backup.sh
bash backup.sh /www/wwwroot/graduate-os
```

建议宝塔每天执行一次。

正式长期使用建议至少备份：

```text
MySQL
storage/papers
必要配置模板
```

`.env` 含秘密，不要放进公开备份或发布 ZIP；如果你自己做加密离线备份，可以单独保管。

---


# 31. 更新最终版源码

未来收到新的完整源码 ZIP：

1. 宝塔文件管理器上传并覆盖代码。
2. 不覆盖 `.env`、`storage/`。
3. 终端：

```bash
cd /www/wwwroot/graduate-os
npm ci
npx prisma generate
npx prisma migrate deploy
npm run build
pm2 restart graduate-os --update-env
pm2 save
```

如果明确说明某个热修复：

```text
没有依赖变化
没有 migration
```

可以按热修复文档跳过 `npm ci` / `prisma migrate deploy`。

**本最终整合包是从零部署包，不需要再安装历史热修复。**

---
