Files
qihuo/docs/BACKUP.md
T
dekun 98239d29c1 Add automatic database backup with download and restore docs.
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>
2026-06-26 13:04:48 +08:00

3.3 KiB
Raw Blame History

数据备份与恢复

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:00Asia/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

恢复后检查清单

  1. 已部署 qihuo 代码与 Python 虚拟环境(见 DEPLOY.md
  2. 已配置 .envSECRET_KEY、CTP 账号等)
  3. 数据库文件权限正确(运行用户可读写的 futures.db
  4. 访问 Web 登录,检查交易记录、统计页是否正常
  5. CTP 模式需在新环境重新连接柜台

注意事项

  • 恢复前务必停止 qihuo,避免进程占用数据库导致覆盖不完整
  • 备份使用 SQLite backup API,并在 WAL 模式下尝试 checkpoint,降低锁冲突风险
  • 自动备份在应用后台线程执行,与 Web 服务同进程;PM2 重启不影响已生成的历史压缩包
  • 大体积 uploads/ 会使压缩包变大,可按需定期清理无用截图
  • 不要将含 .env、数据库的压缩包上传到公开网盘

故障排查

现象 处理
设置页无备份列表 检查 /root/qihuo_backup 目录权限,进程需可写
立即备份无反应 查看 PM2 日志;可能上一任务仍在进行
下载 404 文件名须为系统生成的 qihuo_backup_*.tar.gz
恢复后无法登录 确认 futures.db 已覆盖到实际运行目录
恢复后 CTP 连不上 在新服务器配置正确的 .env CTP 参数

相关文档