98239d29c1
Back up futures.db and uploads to /root/qihuo_backup on a daily schedule, expose backup downloads in settings, and document cross-server restore. Co-authored-by: Cursor <cursoragent@cursor.com>
3.3 KiB
3.3 KiB
数据备份与恢复
qihuo 支持自动备份 SQLite 数据库与复盘附件,生成可在其他 Linux 服务器恢复的压缩包。
备份内容
| 内容 | 说明 |
|---|---|
futures.db |
主库:账号、交易记录、设置、统计缓存等 |
uploads/ |
复盘截图、自动 K 线图(若存在) |
manifest.json |
备份时间与文件清单 |
RESTORE.md |
包内恢复说明 |
restore.sh |
一键恢复脚本 |
不包含 .env(含 CTP 密码等敏感信息),请单独安全保管或在新服务器重新配置。
备份目录
默认:/root/qihuo_backup
可通过环境变量覆盖:
# /opt/qihuo/.env 或 systemd/PM2 环境
QIHUO_BACKUP_DIR=/data/qihuo_backup
系统设置页
路径:系统设置 → 数据备份与恢复
- 立即备份:后台生成
qihuo_backup_YYYYMMDD_HHMMSS.tar.gz - 每日自动备份:默认每天 03:00(Asia/Shanghai)执行
- 保留份数:默认保留最近 30 份,超出自动删除最旧文件
- 下载:列表中点击「下载」获取压缩包
在新服务器恢复
方式一:使用包内脚本(推荐)
# 1. 上传压缩包到目标机
scp qihuo_backup_20260626_030015.tar.gz root@新服务器:/root/
# 2. 解压并恢复
cd /root
tar -xzf qihuo_backup_20260626_030015.tar.gz
cd qihuo_backup_20260626_030015
chmod +x restore.sh
./restore.sh
默认恢复到 /root/qihuo。若生产目录为 /opt/qihuo:
RESTORE_DIR=/opt/qihuo ./restore.sh
也可通过环境变量固定默认恢复目录:
QIHUO_RESTORE_DIR=/opt/qihuo
方式二:手工复制
tar -xzf qihuo_backup_20260626_030015.tar.gz
cd qihuo_backup_20260626_030015
pm2 stop qihuo # 或停止当前进程
cp futures.db /opt/qihuo/futures.db
cp -a uploads/. /opt/qihuo/uploads/ # 若有 uploads
pm2 restart qihuo
恢复后检查清单
- 已部署 qihuo 代码与 Python 虚拟环境(见 DEPLOY.md)
- 已配置
.env(SECRET_KEY、CTP 账号等) - 数据库文件权限正确(运行用户可读写的
futures.db) - 访问 Web 登录,检查交易记录、统计页是否正常
- CTP 模式需在新环境重新连接柜台
注意事项
- 恢复前务必停止 qihuo,避免进程占用数据库导致覆盖不完整
- 备份使用 SQLite
backupAPI,并在 WAL 模式下尝试 checkpoint,降低锁冲突风险 - 自动备份在应用后台线程执行,与 Web 服务同进程;PM2 重启不影响已生成的历史压缩包
- 大体积
uploads/会使压缩包变大,可按需定期清理无用截图 - 不要将含
.env、数据库的压缩包上传到公开网盘
故障排查
| 现象 | 处理 |
|---|---|
| 设置页无备份列表 | 检查 /root/qihuo_backup 目录权限,进程需可写 |
| 立即备份无反应 | 查看 PM2 日志;可能上一任务仍在进行 |
| 下载 404 | 文件名须为系统生成的 qihuo_backup_*.tar.gz |
| 恢复后无法登录 | 确认 futures.db 已覆盖到实际运行目录 |
| 恢复后 CTP 连不上 | 在新服务器配置正确的 .env CTP 参数 |
相关文档
- DEPLOY.md — 部署与目录结构
- FEATURES.md — 功能与路由一览