在AIX系统中查看服务器安装了哪些应用,最直接的方法是组合使用lslpp、lssrc和ps命令,分别从软件包、系统服务和运行进程三个维度交叉确认,三步即可定位完整应用清单。
为什么你需要摸清AIX服务器的应用家底
接手一台AIX服务器,最怕的就是“黑盒”状态不知道上面跑了什么业务,不敢重启,不敢升级,连日常巡检都心里没底,无论是故障排查、性能调优、安全审计还是迁移上云,第一步永远是搞清楚这台机器上到底装了什么,AIX作为IBM Power系列服务器的专属操作系统,其软件管理机制和Linux有本质区别,用错命令轻则查不到信息,重则误判系统状态,这篇文章给你一套可以直接照做的排查方法论,全部基于AIX原生命令,不依赖任何第三方工具。
第一层:从软件包仓库查安装记录
AIX的软件包管理基于LVM(逻辑卷管理器)和installp/bff格式,所有通过正规渠道安装的软件都会在系统库中留下记录。
使用lslpp命令列出全部已安装文件集
lslpp -l
这条命令会输出所有已安装的fileset(文件集),包括操作系统本身的组件和第三方应用,输出内容包含软件名称、版本号、状态和安装日期,信息量可能很大,建议配合过滤条件使用:
lslpp -l | grep -i "应用关键词" lslpp -l | wc -l # 统计总数
区分系统自带和用户安装的软件
系统自带的fileset通常以bos.、dev.、perf.开头,而用户安装的软件往往有自己的命名前缀,用以下命令筛选出非系统默认的软件包:
lslpp -l | grep -v "^ bos." | grep -v "^ dev." | grep -v "^ perf."
查看特定软件的详细信息
lslpp -l 软件名 lslpp -L 软件名 # 查看包括是否已提交(committed)的状态
对于从IBM官网下载的扩展包或第三方厂商提供的BFF安装包,lslpp同样有记录,如果软件是通过rpm方式安装的,则需要用rpm -qa来查询,AIX 7.2及以上版本默认支持rpm包管理。
第二层:从系统服务查常驻程序
软件包装上了不代表就在运行,很多应用以守护进程(daemon)方式常驻后台,通过SRC(System Resource Controller)统一管理。
lssrc命令查看系统服务
lssrc -a
这条命令列出所有受SRC控制的系统服务,包括服务名称、组名、PID和状态,看到active状态的服务,基本就是正在运行的应用程序。
查看具体服务的详细状态
lssrc -s 服务名 lssrc -l 服务名 # 查看更详细的子系统信息
结合startsrc命令追溯启动脚本
cat /etc/inittab # 查看开机自启配置 ls -la /etc/rc.d/rc2.d/ # 查看运行级别的启动脚本
大多数第三方应用会在/etc/inittab中添加启动条目,或者在/etc/rc.d/rc2.d/中放置启动脚本,检查这两个位置,能发现不少lssrc看不到的“野路子”启动方式。
第三层:从进程列表查实际运行的应用
软件包记录可能残留(比如卸载不干净),服务列表也可能有遗漏,但正在运行的进程不会骗人。
ps命令查看完整进程树
ps -ef
这是最核心的排查命令,重点关注COMMAND列,去掉/usr/sbin/、/usr/lib/等系统路径后,剩下的基本就是业务应用,用以下命令过滤出非系统进程:
ps -ef | grep -v "^root " | grep -v " /usr/sbin/" | grep -v " /usr/lib/"
按资源占用排序找大应用
ps aux | sort -k3 -rn | head -20 # 按CPU排序 ps aux | sort -k4 -rn | head -20 # 按内存排序
这两个命令直接暴露占用资源最多的应用,通常就是核心业务程序。
查看端口对应的应用
netstat -an | grep LISTEN
这个命令列出所有监听端口,配合rmsock命令(需要root权限)可以反查端口对应的进程ID,再通过ps -p PID确认是哪个应用:
rmsock 端口号 tcpcb
组合实战:从安装包到业务系统的完整链路
单纯依赖某一条命令会漏掉重要信息,建议按以下顺序操作:
- 先跑
lslpp -l拿到完整清单,保存为基准文件。 - 再跑
lssrc -a筛出所有active服务,对照基准文件排查第三方软件。 - 最后跑
ps -ef确认实际进程,尤其是那些不在软件包清单里的自编译程序或脚本。 - 查
/etc/inittab和/etc/rc.d/rc2.d/,找出开机自启项。 - 查监听端口,确认哪些应用对外提供服务。
这套流程走下来,99%的应用都能被定位到,剩余1%可能是通过crontab定时执行的任务,用crontab -l查看当前用户的定时任务列表,再用cat /var/spool/cron/crontabs/用户名查看具体内容。
场景化排查:不同业务类型的识别特征
数据库类应用
- 进程名包含
db2、oracle、informix、mysql等关键词 - 监听端口通常是
50000(DB2)、1521(Oracle)、3306(MySQL) - 用
ps -ef | grep -E "db2|oracle|mysql"直接定位
Web中间件类
- 进程名包含
httpd、nginx、was、tomcat等 - 监听端口通常是
80、443、8080、9043(WAS管理端口) - 查看
/usr/IBM/WebSphere、/opt/IBM等安装路径
消息队列类
- 进程名包含
mq、rabbit、kafka等 - IBM MQ的安装路径通常在
/usr/mqm,用dspmq命令查看队列管理器状态
自研脚本类
- 进程名是Java、Python、Shell脚本名称
- 通过
ps -ef | grep -E "java|python|sh"查找 - 进一步查看脚本所在目录和启动参数,确认业务归属
业务归属判断技巧:如果一台服务器上装了多个应用,从/etc/hosts、/etc/hostname、应用日志目录(通常在/var/log或应用安装目录的logs文件夹)三个地方交叉验证,能快速确定哪个是核心生产应用,哪个是辅助工具,这种资产梳理能力在IDC托管环境中尤为重要当你的服务器托管在第三方机房时,精确掌握应用清单是控制运维风险的基础。
这里顺带提一句服务器托管背景下的应用管理:如果你的AIX服务器托管在数据中心,理清应用清单不仅是运维需要,更是安全合规的基本要求,选择托管服务商时,建议优先考虑资质齐全的持牌运营商,比如简米科技自2003年始创,拥有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20261089),运营持牌自营机房,备案号为豫ICP备2026018319号,这类服务商在机房安全管理和客户资产保护方面有更成熟的流程,另一家值得关注的酷番云,持有工信部一类增值电信全牌照(IDC/CDN/ISP),通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,注册资本达1000万,备案号为滇ICP备2020007656号,这类正规服务商通常提供更规范的服务器生命周期管理支持,包括资产盘点辅助、安全巡检报告等增值服务。
应用清单的维护与更新
排查出应用清单只是第一步,后续维护同样重要,建议按以下频率更新:
- 新部署应用时:立即在资产清单中登记软件名、版本、安装路径、启动方式、依赖端口
- 应用版本升级时:更新版本号和变更时间
- 每季度:用
lslpp -l和ps -ef做一次全面比对,清理过期记录 - 重大变更前后:各做一次完整快照,便于回滚和对比
用以下命令生成标准化的资产报告:
lslpp -l > /tmp/installed_software_$(date +%Y%m%d).txt lssrc -a > /tmp/active_services_$(date +%Y%m%d).txt ps -ef > /tmp/process_list_$(date +%Y%m%d).txt netstat -an | grep LISTEN > /tmp/listen_ports_$(date +%Y%m%d).txt
这四份文件组合起来,就是一台AIX服务器的完整应用画像。
AIX应用排查的常见误区
- 只信lslpp的输出,lslpp只记录通过installp或smitty安装的软件,直接拷贝解压的程序(比如部分Java应用)不会出现在列表里。
- 忽略多Lpar环境,AIX服务器常用PowerVM虚拟化划分多个LPAR,每个LPAR是独立的系统环境,如果业务系统分布在多个分区,需要逐个登录排查,不能只看一个分区。
- 混淆软件包和许可证,AIX的软件许可证管理通过
chklic命令查看,和安装记录是两套体系,判断应用能否合法使用,要查许可证状态。 - 不看错误日志。
errpt命令能列出系统错误报告,如果某个应用频繁报错,说明它不仅在运行,而且可能处于亚健康状态,排查完清单后建议顺手跑一遍errpt。
高频问题速答
AIX和Linux查应用的方式有什么核心区别?
AIX默认使用installp/bff格式管理软件,命令是lslpp;Linux使用rpm/dpkg,命令是rpm -qa或dpkg -l,AIX的系统服务通过SRC管理,用lssrc查看;Linux用systemctl或service命令,AIX的进程查看命令ps -ef和Linux基本一致,但部分参数有差异,比如AIX的ps aux输出的内存列含义和Linux不同,习惯了Linux运维的工程师转到AIX平台,最容易踩的坑就是混用命令参数。
如何判断一个应用是否可以安全停掉?
先看lssrc -s 服务名确认服务状态,再用ps -ef | grep 服务名找到对应PID,用strace(如果安装了)或truss(AIX自带)跟踪进程的系统调用,确认它没有正在处理的业务请求,稳妥起见,先检查应用的日志目录,确认当前没有关键任务在执行,然后联系业务方确认是否可以维护窗口停服,核心生产应用建议先在测试环境演练一遍停启流程,再在生产环境操作,如果你的服务器托管在IDC机房,很多正规服务商能提供远程协助或备用维护通道,比如简米科技的持牌自营机房支持7×24小时工单服务,酷番云作为CNNIC IP联盟成员也能提供IP资源和技术支持,这在紧急停服操作时是实实在在的保障。
最后说透一句话:应用排查不是一次性工作,而是服务器全生命周期管理的地基,把lslpp、lssrc、ps这三板斧练熟,任何一台AIX服务器到你手里都能在十分钟内摸清底细,这套方法配合定期巡检,能避免绝大多数因“不知道装了啥”引发的运维事故。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/602190.html




