服务器软件运行巡检
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_555dda85/server-inspect。
技能介绍
要解决的问题
接手一台服务器时,最先要回答的问题往往不是「服务好不好」,而是「现在到底跑着什么」。项目部署在 /opt 还是 /home,某个端口被哪个进程占着,日志文件写到哪一步,这些信息通常散落在 ps、ss、lsof 和一堆路径之间,手工拼凑既慢又容易漏。这个技能要解决的就是把这件事固化下来:输入一组路径,拿到一份结构化的运行状态报告。
核心能力
巡检脚本基于 psutil==5.9.5,围绕三个维度展开:
- 进程识别:列出目标路径下存活的进程,并通过可执行文件路径与工作目录把进程关联回具体项目;
- 端口监听检测:汇总监听中的端口及其占用者,适合排查端口冲突;
- 日志读取:按匹配模式抓取日志文件末尾内容,默认
*.log,单文件默认读取 100 行。
工作方式
第一步是确定巡检范围。可以用 --paths /opt/webapp,/home/api 精确指定项目目录(逗号分隔的绝对路径),也可以用 --default-paths 直接扫描 /home、/opt、/app、/var/www、/srv 这些常见部署路径。
第二步是选择巡检维度,按需组合:
--processes:进程信息;--ports:端口监听情况;--logs:日志摘要,需配合--log-pattern或--log-paths指定日志位置。
第三步是解析输出。脚本产出 JSON 格式报告,按路径分类组织,每个路径节点下包含进程列表、端口占用和日志摘要,正好对应「哪个项目跑着什么、占着什么、写着什么」。
适用边界
脚本需要读取 /proc 并执行系统命令,运行前要确认权限足够。日志巡检只读文件末尾,--log-lines 参数要留意,避免一次读出超大文件把输出撑爆。另外,进程与路径的关联依赖 exe 路径和工作目录,如果进程从别处启动、只是临时访问目标目录,可能出现归类偏差,看到异常结果时优先怀疑这一点。
使用场景
- 接手陌生服务器,需要盘点 /opt、/app 等目录下各项目实际运行了哪些进程。
- 服务启动失败,用端口监听检查判断冲突端口被哪个程序占用。
- 发布前巡检指定项目路径,确认进程存活、端口监听和日志末尾无异常报错。
- 日志目录不在标准位置,需要按自定义路径抓取日志文件末尾内容做问题定位。
适合人员
- 需要快速摸清服务器上项目分布与运行状态的运维工程师。
- 负责排查端口冲突、进程异常退出问题的后端开发工程师。
- 要在变更窗口内确认服务进程和日志状态的 SRE 或值班人员。
- 负责服务器交付验收,需要按路径输出结构化巡检报告的实施工程师。