随笔 - 105  文章 - 2 评论 - 9 阅读 - 19万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

最近接到一个任务,有一批机器在正常使用,但是由于交接手续不完全,需要弄清楚里面的服务哪些是正常使用的

一开始碰到这个需求,我是懵逼的,这需求就像开盲盒,怎么才能又准确又快的找出在用的程序呢

思来想去,最好的线索就是端口占用情况,以及关键词搜索

 

linux:

复制代码
#切换到管理员账号
su
- #安装工具,以及查询端口占用 yum install -y net-tools
#大致检查哪些端口有可能是有用的
netstat -tunlp
#根据关键词大致观察可能的程序
ps -ef|grep java
ps -ef|grep mysql
ps -ef|grep nginx
ps -ef|grep php
#查看docker的容器情况
docker ps --no-trunc

#根据端口查pid
netstat -tunlp|grep 端口号

#根据pid查应用
ps -ef|grep pid

#其实有些docker应用也会混入在关键词搜索中,如何分辨他们是docker里的还是直接部署在服务器上的,status命令可以看出端倪,docker应用一般都查不出子进程
systemct status pid

#根据pid查程序为准
ls -l /proc/pid
复制代码

 

windows:

windwos思路和linux大致相当,也是主要以端口为线索

复制代码
#查看端口占用情况
netstat -aon

#用端口查出的pid查询端口对应的程序
tasklist /svc|findstr PID
#这里有个技巧就是利用任务管理器里的进程,windows10之前的,在查看里调出 pid,进程名,命令行选项,windows10之后的直接点击任务管理器的名称栏,勾选pid,进程名,命令行
#想复制任务管理器 命令行里的命令有技巧
#在cmd中输入以下命令即可,一个是根据应用名,一个是根据pid,windows10之后的可以直接选中右键粘贴,windows10之前的,要在cmd窗口点右键,标记,选中要粘贴的部分,再点右键即复制成功
wmic process where caption="java.exe" get caption,commandline,ProcessId /value
wmic process where ProcessId="1111" get caption,commandline,ProcessId /value

#根据端口号和pid查任务,以及杀掉异常任务
netstat -aon|findstr 端口号 tasklist /svc|findstr PID taskkill /t /f /pid pid号
复制代码

 

 

参考文档:

 https://ask.csdn.net/questions/257405

https://blog.csdn.net/weixin_46699775/article/details/120301242

https://jingyan.baidu.com/article/af9f5a2d75f16e02150a451c.html

https://blog.csdn.net/saibeifeng187/article/details/128868154

https://www.cnblogs.com/idean/p/15093313.html

posted on   06  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示