# 巡检信息与清理缓存 内置的「系统管理 → 系统信息」页面已于 2026-09-28 下线(System 控制器 / `view/system` / `modules/system.js` 全部删除), 原因很直接:它展示的东西控制台首页顶部一字不差地都有(同一份 `SystemInfo::collect()`),留着就是两份要维护。 现在这两件事都在**控制台首页**(`/admin/console/index.html`,`app/backend/controller/Console.php`): - 巡检信息:`Console::index()` 渲染,数据来自 `app/backend/library/SystemInfo.php` - 清理缓存:`Console::clean()`,权限 `console:clean`(挂在「控制台」菜单下) ## 页面内容(控制台首页) | 区块 | 说明 | |------|------| | 运行统计 | 管理员数、插件数、附件数、数据库占用(走 `DbBackup::tables()` 汇总) | | 运行环境 | YwxApp / ThinkPHP / PHP / MySQL 版本、系统、服务器时间、上传限制、内存限制、脚本超时、禁用函数 | | 磁盘 | 已用 / 总量 / 剩余,进度条(取 `app()->getRootPath()` 所在盘) | | 目录权限 | `runtime` / `public/storage` / `config` / `addon` 是否存在、是否可写;不可写会导致缓存无法生成、上传失败、插件装不上 | | 维护 | 清理数据缓存 / 模板缓存 / 全量清理(含路由缓存) | | 安全提示 | 近 7 天操作条数、其中登录失败次数 | | 近 7 天趋势 | 会员注册数、后台操作条数(真数据,`Console::collectStats()` 产出,ECharts 渲染) | | 最新会员 / 最近操作日志 | 各取最近 8 条真数据 | ## 清理缓存 ```text POST /admin/console/clean body: type=cache|temp|all ``` - `cache` → `runtime/cache` - `temp` → `runtime/temp` - `all` → 上述两个 + `runtime/route_list.php`(下次请求自动重建) **不碰 `runtime/log`**:操作日志(`docs/guide/operation_log.md`)与错误日志要留着。 清理动作本身会记一条 `console/clean` 日志(写在 `SystemInfo::cleanRuntime()` 里)。 ## 巡检数据怎么取(给排障用) - MySQL 版本:`Db::query('SELECT VERSION()')` - 磁盘:`disk_total_space()` / `disk_free_space()` —— 注意这俩返回 **float**, `formatBytes()` 参数必须收 float,否则严格类型下直接 TypeError(页面 500)。 - 统计用 `SystemInfo::safeCount()` 包一层:表缺失或查询异常时返回 0, 首页不会因为某张插件表没建就整体打不开。`Console::collectStats()` 里的逐个查询同理。 ## 老库迁移 已装好的库不会自动跟着变(权限表没有自删逻辑),跑一次一次性脚本即可: ```bash php scripts/migrate_console_clean.php # 预演 php scripts/migrate_console_clean.php --force # 执行 ``` 做的事:删掉 `system:index` 页面节点及其子权限与角色授权,把 `system:clean` **就地改名**为 `console:clean`(Route 同步改 `console/clean`,挂到「控制台」下)。 就地改名而不是新建,是为了保住 id ⇒ 保住角色授权表里既有的绑定。