青龙面板版本管理:稳定版与测试版怎么选,更新回滚如何安全做
【免费下载链接】qinglong支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台(Timed task management platform supporting Python3, JavaScript, Shell, Typescript)项目地址: https://gitcode.com/GitHub_Trending/qi/qinglong
凌晨两点,一次更新跑完,面板自动重启,打开浏览器,定时任务列表一片红。事后查明:前一天把QL_BRANCH设成了 develop 想尝新功能,更新拉下来的测试版代码恰好带个接口 bug。青龙面板的版本管理就是这么回事:稳定版和测试版差的不是功能,是风险。选版本,本质是选风险策略。
按使用场景定版本,别按"哪个新"定
版本选哪个,看你的场景,不看版本号大小:
| 你的使用场景 | 推荐版本 | 一句话理由 |
|---|---|---|
| 跑生产任务(签到、领券、告警) | 稳定版(master 分支) | 出问题能回滚,不会半夜把你叫醒 |
| 隔离机器上尝新 API、新功能 | 测试版(develop 分支) | 周更节奏,新东西先到 |
| 生产不能动,又想试新功能 | 稳定版 + 单独开一个实例 | 另一个端口跑测试版,任务互不影响 |
| 刚部署、还不熟面板 | 稳定版 | 容器镜像构建时默认就是 develop,敢改回 master |
最后一行容易被忽略:官方镜像默认构建的就是 develop,不是"默认稳定"。
三步完成更新:先备份、再执行、后验证
一条命令搞定更新前备份与状态检查
tar -zcvf ~/ql-backup-$(date +%F).tgz -C /ql data/db data/upload ql check⚠️ 第一条把数据库和上传目录打包(任务、环境变量、日志配置全在data/db/ql.db里),看到文件清单输出即备份成功;第二条检测青龙环境并修复,没有红色报错再往下走。备份这一步,后面回退全靠它。
更新命令两条路,命令行与图形界面
命令行最直接:
ql update # 更新并重启 ql update false # 只更新,不重启shell/update.sh 依次做:检测网络 → 选镜像源(默认国内源,能直连外网就切到 GitHub 源)→ 按当前分支下载代码包和静态资源 → 有package.json变更才装依赖 → 重启 pm2。看到"更新青龙源文件成功"和"依赖检测安装成功"两行,这次更新就算成了。
想切测试版,差异只在一行:
# 在 .env 里加 QL_BRANCH=develop,然后 ql update脚本发现QL_BRANCH是 develop(或 debian 系列)就拉对应分支的代码。切回稳定版同理,改回 master 再跑一次。
图形界面给不想碰终端的人:登录后进【系统设置】点"检查更新"。src/pages/setting/checkUpdate.tsx 里的逻辑是拿本地版本号对比远端最新version.yaml,有新版本就把更新日志摆给你看,点"下载更新"后日志通过 WebSocket 实时刷在弹窗里,下载完弹"确认重启",确认后页面 30 秒后自动刷新。和ql update false是同一条路,只是包了层壳。
更新后验证与回退预案
ql log看最近 15 行系统日志,没有红色报错、面板能登录、任务列表条数没少,✅ 这单收工。
真翻车了,回退就三步:.env里QL_BRANCH改回 master → 跑一次ql update重新拉稳定版代码覆盖 → 数据层面不对劲的话,到【系统设置】导入更新前打的 tar 备份包。青龙没有一键回滚按钮,但这套组合拳够用了。
进阶配置:生产环境跑稳了才需要看
QL_BRANCH:决定拉哪个分支,master 稳定版、develop/debian 测试版,写在.env,重启生效。- 镜像源不用管:更新脚本按网络状况自动在两个源之间切换;公司内网受限就在
config/config.sh里配ProxyUrl。 - 依赖源:【系统设置】里能单独切 pnpm、pip 和 Linux 软件包源,国内环境装依赖慢时再动它。
翻车急救:看现象、找原因、跑命令
更新失败,提示"请检查网络"?大概率镜像源没切对或者磁盘满了。
df -h /ql ql update磁盘有富余就直接重跑,脚本会重新选源;还报ENOTFOUND就先查代理配置,把ProxyUrl临时置空再试。
更新后面板打不开,5700 端口没响应?pm2 进程没拉起来。
pm2 restart qinglong pm2 list状态变成 online 就好,不用重新部署。
切完测试版,任务集体挂掉?新版接口变了、任务代码没跟上,别慌,直接回版本:QL_BRANCH改回 master,重跑ql update。数据层面还有异常的,导入更新前的备份包。
报EACCES、权限不足?确认你是 root 在跑;宿主机部署时看/ql是不是被别的用户建过目录,容器部署则确认没有把宿主目录以错误权限挂进容器。
生产锁稳定,尝鲜走测试,备份是保命绳。下次敲ql update之前,先把那条 tar 备份命令跑了——翻车不可怕,没备份才可怕。
【免费下载链接】qinglong支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台(Timed task management platform supporting Python3, JavaScript, Shell, Typescript)项目地址: https://gitcode.com/GitHub_Trending/qi/qinglong
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考