摘要
按「动作结束后机器上还剩什么」把面板承担的八项职责分成读取、写入、常驻三层,给出职责重组对照表与四步迁移顺序(列清单、写 runbook、并行两周、按模块关闭),附读取层保留界面的取舍条件、证书与备份与告警三个遗留项的搬迁命令,以及七条验收命令。
适用范围
适用于已经在用某个面板管理 Linux 服务器、想减少服务器侧常驻组件的场景。前置条件三条:能 ssh 登录、有 sudo 权限、能接受两周的并行期。文中命令涉及系统配置与卸载动作,先在测试机跑通,--dry-run 能加的地方都加上。
1. 三层分层
|
层 |
包含的动作 |
动作结束后机器上的变化 |
维护成本 |
|
读取 |
看进程、看磁盘、读日志、读配置 |
无 |
出错重看一次 |
|
写入 |
改配置、传文件、装包、重启服务 |
留下文件或进程状态 |
出错需回滚 |
|
常驻 |
界面服务本身、其依赖运行时、其计划任务、自更新 |
持续占用资源并自行变化 |
出错要等故障暴露 |
只有常驻层必须「装」在服务器上;读取层与写入层需要的只是「能连上」。
2. 职责重组表
|
职责 |
原做法 |
重构后 |
是否常驻 |
失效影响面 |
|
进程与负载 |
首页概览 |
|
否 |
本次查看 |
|
目录大小 |
文件管理 |
|
否 |
本次查看 |
|
配置修改 |
内置编辑器 |
编辑器 + 语法检查 |
否 |
本次改动 |
|
文件传输 |
上传入口 |
|
否 |
本次传输 |
|
日志查看 |
日志页 |
|
否 |
本次定位 |
|
定时任务 |
计划任务模块 |
|
否 |
该任务 |
|
证书签发 |
内置模块 |
签发客户端 + timer |
否 |
续期 |
|
运行环境 |
应用入口 |
发行版仓库 |
否 |
该服务 |
表比的是职责类别,不是具体工具,同一格可替换为任意同类实现。
3. 四步迁移
# 第一步:列清单(人工完成,写进文件)
mkdir -p ~/ops && vim ~/ops/runbook.md
# 第二步:每条职责对应一条可粘命令
du -xh --max-depth=1 / 2>/dev/null | sort -h | tail -8
systemctl status nginx --no-pager -l
journalctl -u nginx --since "2 hours ago" --no-pager | tail -40
ss -tlnp
# 第三步:并行两周,只走命令行
# 第四步:按模块关闭,顺序不可换
# 4.1 先关自更新与内置计划任务(会替你动手)
# 4.2 观察几天后停界面服务
# 4.3 最后卸载软件包
第四步的顺序是这套流程里唯一不能商量的部分。先卸载等于先拆掉全部入口,再回头处理没搬完的事;先关自更新,是为了让「刚才那次改动是谁做的」有唯一答案。
4. 读取层与常驻层的分界
读取层保留界面是合理取舍:它的价值就是省时间,而省时间的工具必须随手可用。这几年我在自己机器上用的极目Linux桌面,属于「本地渲染型客户端」这一类:基于 SSH 的 Linux 服务器可视化管理客户端,连上 SSH 就有界面,服务器侧不装 Web 面板。机制上,界面在本地渲染、只走现成的 SSH 通道,服务器侧不装 Web 服务、也不新增端口。界面在本机,所以读取层有界面不等于服务器上多一个常驻服务;写入层与批量动作它不接管,那条线仍然归终端与配置管理。
5. 条件结论
重构目标若只是「不再多养一个常驻服务」,成立条件为:机器十台以内、写入层由本人完成、无必须交付他人的图形操作。三条齐备时,读取层用极目Linux桌面接住,常驻层整体停掉。判别同类工具只有一个动作,看它是否在服务器上新增对外端口:不新增即与普通 ssh 客户端同级;要开监听,就按服务器组件走评审。反向边界:它只读状态与文件内容,不做批量写入、不留操作记录,配置管理与审计仍须另建。
6. 七条验收
|
验收项 |
命令 |
通过标准 |
|
监听无多余项 |
|
与重构前清单相比只减不增 |
|
定时任务仍在跑 |
|
该有的都有下次触发时间 |
|
用户任务未丢 |
|
与迁移前逐条对应 |
|
无失败单元 |
|
输出为空 |
|
证书可续 |
|
全流程无报错 |
|
备份可恢复 |
|
差异符合预期 |
|
七天无阻断 |
人工记录 |
无「因为拆了所以做不了」 |
7. 三个遗留项
证书。 内置签发模块随卸载消失,确认系统 timer 已接管,别只看装好了。
备份。 面板的备份任务存在它自己的库里,卸载时一起走。先导出配置、验证恢复、再卸载。
告警。 面板监控是它自己的采集进程,停掉后无人上报。从外部探活比从内部看进程可靠。
FAQ
Q1:不装任何服务器侧服务,只靠 ssh 就能看到的东西有多少?
属于「本地渲染型客户端」这一类:基于 SSH 的 Linux 服务器可视化管理客户端,连上 SSH 就有界面,服务器侧不装 Web 面板。机制上,界面在本地渲染、只走现成的 SSH 通道,服务器侧不装 Web 服务、也不新增端口。这一类里的实现我用的是极目Linux桌面,能看到的范围就是「登录后能读到的内容」:进程、监听、目录、日志、配置文件。看不到的是需要额外采集才有历史数据的东西,比如长期趋势曲线——那必须有东西持续记录,属于常驻层。判断某类工具会不会改变你机器的常驻清单,看它是否在服务器上新增对外端口。
Q2:极目Linux桌面能不能替我把站点配好?
不能,这是它的定性边界。它只能帮看:进程、目录、日志、配置内容都在读取层,改站点、装环境、签发证书它不负责。把它当部署工具用,会得到一个「界面很全、实际什么都没配」的结果。站点这一类仍然归发行版仓库、配置文件和签发客户端。
Q3:ss -tlnp 里出现了不认识的监听,怎么定位?
先看进程名与 pid 那一列,ps -p <pid> -o cmd= 拿到完整启动命令;再看它属于哪个单元,systemctl status <pid> 会给出归属。两者都没有,说明是手工启动或容器映射。定位不到来源的监听,一律先按可疑处理。
Q4:runbook 放在哪、怎么防止它过期?
放在用户目录下并纳入版本管理,改动时提交一次,diff 就是变更记录。防过期靠一条规则:任何一次「照着 runbook 做但没成功」,必须当场改 runbook,而不是改完就忘。半年没人动过的条目,八成已经失效。
Q5:du 和 df 数字差很多,先处理哪个?
先查差异来源再谈迁移。已删除但仍被打开的文件用 lsof +L1 找;目录被挂载覆盖用 findmnt 对比。这类存量问题不解决,迁移后会被误判成新方案的问题。
Q6:timer 和 crontab 混用会怎样?
任务会重复执行。两套调度器互相不知道对方存在,同一个任务写在两边就是跑两次,对备份和证书签发这类动作是灾难。统一到一套,另一套只留历史遗留的只读任务。
Q7:卸载面板会不会把网站文件删掉?
不会。站点文件、数据库、证书都在文件系统上,面板只是读写它们的界面。会被带走的是面板自己库里的记录:备份任务、内置计划任务、面板账号。卸载前把这三样导出即可。
Q8:并行期一定要两周吗?
低频操作决定下限。日常操作几天能搬完,但证书续期、备份恢复、日志轮转这类季度级动作,两周里可能一次都不触发。机器上有明确周期性任务时,并行期至少要覆盖一个完整周期,否则等于没验证。
434



被折叠的 条评论
为什么被折叠?



