
接手过不少从 Linux 迁移到 AIX 的项目也带过几个刚从学校出来的运维新人发现大家面对 AIX 时最大的障碍不是命令本身而是“不知道它和 Linux 到底哪里不一样”。比如明明敲了lsblk结果报 command not found明明想用/dev/sda结果发现设备路径变成了/dev/hdisk0更常见的是拿到一台宕机的主机连errpt都不记得跑一下。这篇文章就围绕 AIX 日常运维中最常用的命令和底层知识展开尽量用我实际碰到过的场景来讲解。内容主要分四大块先梳理 AIX 与 Linux 的核心差异再重点讲 LVM 和文件系统相关的操作然后是系统监控和安全加固最后是故障排查和日志分析。每一块都会给到可以直接抄作业的命令也会解释为什么这么用。1. 先从 AIX 和 Linux 的差异说起1.1 设备命名与常见目录结构AIX 的设备管理方式和 Linux 完全是两套体系。在 Linux 下硬盘通常是/dev/sda、/dev/sdb分区是/dev/sda1、/dev/sda2到了 AIX 里物理硬盘叫hdisk0、hdisk1对应设备文件在/dev/hdisk0但日常操作中你基本不会直接碰/dev下的设备文件而是通过系统提供的命令来管理。AIX 的根文件系统不是/而是一个逻辑卷默认挂在/上。常见的目录结构也略有不同比如/home是用户目录/tmp是临时目录/var放日志和 spool这些和 Linux 一致。但 AIX 多了一些专属目录比较重要的是/etc下的配置文件和/usr下的系统程序。还有一个很容易被忽略的点AIX 的/dev目录里有大量逻辑卷设备文件比如/dev/hd4对应根文件系统/dev/hd2对应/usr/dev/hd9var对应/var。这个名字规则建议记住排查磁盘空间问题时经常要用。1.2 命令风格与包管理的区别AIX 的很多命令风格更像 BSD比如ls的常用参数在 Linux 上是ls -l在 AIX 上依然支持但有些 GNU 扩展参数就不一定有了比如ls --color在 AIX 上不支持。再比如ps命令AIX 上用ps -ef或者ps aux都可以但ps -eo pid,comm这种 GNU 风格就不一定兼容。包管理上Linux 用yum、apt、dnfAIX 用installp和rpm。AIX 的软件包后缀通常是.bff或.rpm安装命令是installp -acgXd /path/to/package BOSS之类的写法。更要留意的是AIX 的软件包管理体系和 Linux 差异很大不建议直接照搬 Linux 的思路。对比项LinuxAIX设备名/dev/sda/dev/hdisk0逻辑卷管理LVM2LVMAIX 自带文件系统ext4 / xfsJFS2也有 JFS包管理yum / aptinstallp / rpm常见 shellbashksh默认系统日志/var/log/messageserrpt / syslog2. AIX 系统信息与硬件查看命令拿到一台 AIX 机器第一件事就是摸清楚它的底细。系统型号、CPU 数量、内存大小、操作系统版本这些信息在 Linux 上可以用lscpu、free、uname -a搞定AIX 上则是另一套命令。2.1 查看操作系统版本与硬件信息# 查看 AIX 版本最常用 oslevel -s # 显示更详细的信息包括 Technology Level 和 Service Pack oslevel -r oslevel -q # 查看系统硬件型号、序列号 prtconfoslevel -s的输出格式类似7100-05-04-1741分别代表版本、技术级别、服务包和构建编号。日常排查问题或者装软件前第一件事就是确认这个版本号因为很多软件对 AIX 版本有硬性要求。prtconf命令能输出内存大小、CPU 数量、内核架构等关键信息执行后看Memory Size、Processor Type、Number Of Processors这几行就够了。# 单独查看 CPU 信息 lscfg -vp | grep -E Processor|CPU # 查看内存信息 lsattr -El mem02.2 查看文件系统磁盘占用# 查看文件系统使用情况相当于 Linux 的 df -h df -g # 更精细一点的输出带 inode 信息 df -vdf -g是 AIX 上最常用的磁盘查看命令-g表示以 GB 为单位显示。如果你习惯了 Linux 的df -h第一次用df -g可能会愣一下因为 AIX 默认单位是 512 字节块不带参数的话输出数字会非常大。还是建议直接加-g或者-mMB 为单位减少换算成本。查目录大小用duAIX 的du也支持-g参数# 查看 /var 目录下所有子目录的大小按 GB 显示 du -g /var/* # 只看当前目录总大小 du -sg /var3. AIX 用户与权限管理3.1 用户和组的基本操作AIX 创建用户的命令是mkuser删除用户是rmuser修改用户是chuser。这和 Linux 的useradd、userdel、usermod完全不同刚开始用很容易记混。# 创建用户指定家目录和 shell mkuser home/home/testuser shell/usr/bin/ksh testuser # 设置密码 passwd testuser # 修改用户的 shell chuser shell/bin/bash testuser # 删除用户 rmuser testuser # 创建用户组 mkgroup testgroup # 把用户加入组 chuser groupstestgroup testuser有个坑要提醒一下AIX 的mkuser创建用户时不会自动创建家目录需要手动mkdir并chown。这和 Linux 的useradd默认行为不一样别指望系统帮你搞定。mkdir /home/testuser chown testuser:testgroup /home/testuser3.2 权限管理与 sudo 配置AIX 的权限模型和 Linux 基本一致chmod、chown、chgrp这些命令都能用。不过 AIX 早期更依赖 root 直接操作sudo 的普及程度不如 Linux。现在新版本 AIX 也支持 sudo但默认不安装需要单独安装 sudo 包然后配置/etc/sudoers。配置文件格式和 Linux 一致testuser ALL(ALL) ALL有一点要注意AIX 的 root 默认 shell 是 kshsudo 配置里如果指定ALL之外的命令路径一定要写对AIX 的很多命令在/usr/sbin或者/usr/bin下和 Linux 的路径习惯略有差异。4. AIX LVM 逻辑卷管理命令这一部分是 AIX 运维的重头戏也是和 Linux 差异最大的地方。Linux 的 LVM 用pvcreate、vgcreate、lvcreateAIX 用mkvg、extendlv、mklv这套命令。刚开始容易混但只要记住 AIX 的关键字是mkmake和extend思路就顺了。4.1 物理卷、卷组、逻辑卷三层结构AIX 的存储结构从底层到上层是物理卷PV→ 卷组VG→ 逻辑卷LV→ 文件系统。每个物理硬盘就是一个物理卷一个或多个物理卷组成一个卷组卷组里划分逻辑卷逻辑卷上再建文件系统。# 查看系统里的物理卷 lspv # 查看某个物理卷的详细信息 lspv hdisk0 # 查看卷组信息 lsvg # 查看某个卷组的详细信息 lsvg rootvg # 查看卷组里的物理卷 lsvg -p rootvg # 查看卷组里的逻辑卷 lsvg -l rootvgrootvg是 AIX 安装时自动创建的卷组系统盘都在里面。日常加硬盘做存储扩展时通常就是新建一个卷组或者把新硬盘加入已有卷组。4.2 创建卷组和逻辑卷# 查看系统识别到的硬盘 lsdev -Cc disk # 创建一个名为 datavg 的卷组包含 hdisk1 mkvg -y datavg hdisk1 # 在 datavg 里创建一个 10GB 的逻辑卷命名为 datalv mklv -y datalv datavg 10G # 在逻辑卷上创建 JFS2 文件系统 crfs -v jfs2 -d datalv -m /data注意mklv指定大小的方式10G表示 10GB但 AIX 的逻辑卷大小是以 PPPhysical Partition物理分区为单位的10G只是简写系统会自动换算。查看 PP 大小可以用lsvg datavg输出里有一行PP SIZE比如 256 兆字节那么 10G 就是 40 个 PP。理解这个逻辑后手动指定 PP 数量也行mklv -y datalv datavg 404.3 扩展逻辑卷和文件系统这是 AIX 运维里最常做的操作。业务数据涨了磁盘不够用就需要扩展。# 先看当前文件系统的挂载点和大小 df -g /data # 扩展逻辑卷增加 5GB extendlv datalv 5G # 扩展文件系统让文件系统感知到逻辑卷变大 chfs -a size5G /data有个顺序问题必须强调先扩展逻辑卷再扩展文件系统。如果直接在chfs里指定大小而逻辑卷没有对应扩展会报错。反过来如果要缩容文件系统AIX 支持 JFS2 在线缩容但非常不建议在生产环境操作尤其是数据库目录缩容出问题的概率远高于扩容。4.4 删除逻辑卷和卷组# 卸载文件系统 umount /data # 删除文件系统定义 rmfs /data # 删除逻辑卷 rmlv datalv # 删除卷组 reducevg -d datavg hdisk1 rmvg datavgreducevg -d datavg hdisk1的作用是把 hdisk1 从 datavg 中移除并清除上面的逻辑卷执行前一定要确认数据已经备份这个命令不可逆。5. AIX 文件系统常用操作5.1 JFS2 文件系统的创建、挂载与检查JFS2 是 AIX 默认的文件系统日志型文件系统支持大文件和在线扩展稳定性在 Unix 阵营里是老牌选手。# 查看已挂载的文件系统 mount # 挂载文件系统 mount /data # 卸载文件系统 umount /data # 检查文件系统完整性 fsck -y /dev/datalvfsck在 AIX 上使用时要注意如果是 JFS2 文件系统一般直接用fsck -y /dev/datalv就行。但系统根文件系统异常时需要进入维护模式操作单用户模式下的fsck才是安全的系统运行时不要对根文件系统执行fsck。5.2 文件系统自动挂载配置AIX 的文件系统挂载信息存在/etc/filesystems文件里类似 Linux 的/etc/fstab。手动编辑这个文件要格外小心写错了可能导致系统无法启动。正常做法是用命令生成crfs -v jfs2 -d datalv -m /data -A yes-A yes表示开机自动挂载。如果是已经存在的文件系统想改成自动挂载用chfschfs -A yes /data查看某个文件系统的挂载属性lsfs -l /data5.3 大文件系统扩容实战我在生产环境遇到过/oradata目录使用率达到 95% 的情况数据库实例还在运行没法停机。当时就是用extendlvchfs在线扩容解决的整个过程业务无感知。# 确认卷组有足够的空闲空间 lsvg datavg # 查看空闲 PP 数量假设有 200 个空闲 PP # 每个 PP 256MB200 个 PP 就是 50GB extendlv oradata_lv 50G # 扩展文件系统 chfs -a size50G /oradata # 验证 df -g /oradata扩完后记得检查一下逻辑卷是否还有残余空间避免下次扩容时误判可用空间。6. AIX 系统监控与性能分析日常运维里系统变慢、CPU 飙高、内存不足这些问题在 AIX 上有一整套排查命令。下面按场景来拆每个场景给到一个完整的排查链路。6.1 CPU 使用率排查# 查看系统整体负载 uptime # 查看 CPU 使用率 topas # 查看 CPU 密集进程 ps aux | sort -k3 -rn | head -20topas是 AIX 上的 top 命令的增强版界面比 top 丰富很多能直接看到 CPU、内存、网络、磁盘 IO 的实时曲线还能按进程排序。我一般习惯用topas -d 2指定刷新间隔 2 秒避免界面刷新太快看不清。输出里重点看Kernel、User、Wait这三项。Wait高说明磁盘 IO 成瓶颈User高说明应用在疯狂运算Kernel高要查一下是否有系统调用异常或者锁竞争。6.2 内存与交换空间排查# 查看物理内存总量和使用量 lsattr -El mem0 # 查看内存和交换空间使用 vmstat 1 5 # 查看交换空间使用情况 lsps -avmstat输出里面pi和po两列非常重要。piPage In和poPage Out持续非零说明系统在做大量的内存页面换入换出物理内存已经不够用了。之前排查过一台跑 WebLogic 的机器po长期在 800 以上业务响应慢得离谱后来加内存解决。AIX 上的交换空间叫paging space分页空间命令是lsps。需要扩容分页空间时# 创建一个 5GB 的分页空间放在 hdisk1 上 mkps -a -n -s 5G rootvg hdisk1 # 激活分页空间 swapon /dev/paging01分页空间的扩容建议谨慎操作系统原有的分页空间在 rootvg 里如果 rootvg 空间不足可以考虑加硬盘并新建分页空间。6.3 磁盘 IO 监控# 查看磁盘活动 iostat -d 1 5 # 查看磁盘适配器信息 lspv -p hdisk0 # 查看文件系统 IO 统计 filemon -o /tmp/filemon.out 5iostat -d 1 5每秒输出一次共 5 次。重点看% tm_act和Kbps。% tm_act接近 100% 说明磁盘一直在忙结合前面的vmstat里的wa值一起判断。filemon是 AIX 的独门利器能追踪文件级别的 IO 操作。比如你想知道是哪个应用在疯狂读写/var下的日志filemon输出里会列出文件名和读写次数。生产环境用的时候建议指定输出文件跑 10 秒左右就停掉避免影响性能。6.4 网络流量监控# 查看网络接口信息 ifconfig -a # 查看网络连接状态和流量 netstat -i netstat -an | head -50 # 查看网卡统计 entstat -d ent0netstat -i里看Ipkts和Opkts的增量如果发送包和接收包数量异常增长优先怀疑网络拥塞或者有异常流量。entstat -d ent0能看到网卡的详细统计包括错误包、丢弃包排查网络丢包问题很有效。7. AIX 日常巡检与健康检查命令有段时间我负责一批 AIX 小机的日常巡检每天早上第一件事就是跑一遍健康检查脚本确保所有系统处于正常状态。这里分享一套实用的巡检命令都是日常最核心的。7.1 系统错误日志检查AIX 的错误日志机制和 Linux 完全不一样。Linux 主要看/var/log/messages和dmesgAIX 有一个专门记录系统错误事件的命令errpt。# 查看所有错误报告 errpt -a # 查看最近 10 条错误 errpt -a | head -20 # 按严重级别筛选只查看严重错误 errpt -a -s ERROR -e ERROR # 查看硬件错误 errpt -a -J H命令里-s和-e分别表示起始时间和结束时间格式是月月日日时时分分年年。比如查看最近 24 小时的错误errpt -a -s date -u -d 1 day ago %m%d%H%M%y -e date -u %m%d%H%M%yerrpt输出中有CLASS和TYPE两列。CLASS为H表示硬件错误S为软件错误O为操作错误。日常重点看H类的Permanent类型这种往往意味着硬件需要更换。7.2 系统日志与文件完整性AIX 的 syslog 也是可用的配置文件在/etc/syslog.conf日志默认在/var/log或/var/adm下但 AIX 的系统启动日志和登录日志比较分散。# 查看登录记录 last # 查看系统启动信息 alog -o -t boot # 查看内核错误日志 alog -o -t erralog是个好工具AIX 把很多重要信息记录在二进制日志里必须用alog才能读取。比如系统启动时的完整日志alog -o -t boot能看到从开机到启动完成的全部输出排查启动异常时很有用。7.3 系统服务与进程管理# 查看所有系统服务 lssrc -a # 查看某个服务是否正常 lssrc -s sshd # 启动、停止、重启服务 startsrc -s sshd stopsrc -s sshd refresh -s sshdAIX 的服务管理用的是SRCSystem Resource Controller体系命令就是lssrc、startsrc、stopsrc。这和 Linux 的systemctl差别很大但概念类似lssrc -a相当于 Linux 的systemctl list-units。查看进程用psAIX 的ps支持-ef和aux用法和 Linux 基本一样# 查看所有进程 ps -ef # 查看指定进程 ps -ef | grep java # 查看进程占用的 CPU 和内存 ps aux | sort -k3 -rn | head -108. 系统备份与恢复命令AIX 的备份恢复工具很多日常用得最多的是tar、cpio、mksysb和savevg。这里重点说两个mksysb做系统备份savevg做数据卷组备份。8.1 mksysb 系统备份mksysb可以把整个 rootvg 卷组备份到磁带或镜像文件在系统崩溃后可以完整恢复。# 备份 rootvg 到磁带设备 rmto0 mksysb /dev/rmt0 # 备份 rootvg 到镜像文件 mksysb /tmp/rootvg_bak.img8.2 savevg 和 restvg 数据卷组备份# 备份 datavg 卷组到磁带 savevg -f /dev/rmt0 datavg # 恢复 datavg 卷组 restvg -f /dev/rmt0日常备份数据文件直接用tar或者cpio就行AIX 自带的tar和 Linux 兼容命令参数略有差异。# 备份 /data 目录 tar -cvf /tmp/data_backup.tar /data # 恢复 tar -xvf /tmp/data_backup.tar -C /有一个实际经验生产环境的备份文件不要放在 rootvg 里因为 rootvg 本身空间有限而且系统盘坏了备份也跟着丢。建议备份到独立卷组或远程存储。8.3 远程备份与传输AIX 自带scp和ftp日常远程传输文件够用。更高效的做法是用rsync但 AIX 默认不自带需要额外安装。# scp 传输文件到远程服务器 scp /tmp/data_backup.tar userremote:/backup/ # 用 tar 结合 ssh 远程备份 tar -cvf - /data | ssh userremote cat /backup/data.tar9. 网络配置与管理命令AIX 的网络管理和 Linux 区别也不小主要体现在配置文件的组织方式上命令本身倒是相对稳定。9.1 配置 IP 地址和路由# 查看所有网络接口 ifconfig -a # 临时配置 IP ifconfig en0 192.168.1.10 netmask 255.255.255.0 up # 永久配置 IP推荐用 smit 或 chdev chdev -l en0 -a netaddr192.168.1.10 -a netmask255.255.255.0 # 添加默认路由 route add default 192.168.1.1 # 永久添加路由 chdef -a routedefault 192.168.1.1AIX 上很多网络配置建议直接用smitty菜单操作不容易出错。比如配置 IPsmitty tcpip就能进入菜单向导。对于习惯命令行的人来说可能觉得繁琐但首次配置网络用菜单确实更稳妥。9.2 查看网络连接# 查看监听端口 netstat -an | grep LISTEN # 查看 TCP 连接状态统计 netstat -an | awk {print $4} | sort | uniq -c | sort -rn # 查看路由表 netstat -rn排查端口占用问题时netstat -an | grep LISTEN是最常用的一招。看到*.22后面跟着LISTEN说明 SSH 端口正常监听中。10. AIX 软件安装与维护10.1 installp 安装系统软件包AIX 的软件包格式主要有两种installp用的.bff包和rpm包。# 查看已安装的软件包 lslpp -l # 安装软件包 installp -acgXd /path/to/package BOS.rte # 查看某个软件包是否安装 lslpp -l | grep openssh # 卸载软件包 installp -u BOS.rte参数含义-a表示应用所有更新-c表示检查依赖-g表示同时安装依赖包-X表示完成后自动清理临时文件-d指定包所在路径。10.2 RPM 包管理AIX 从 6.1 版本开始支持rpm命令可以用rpm安装.rpm格式的软件包。# 安装 rpm 包 rpm -ivh package.rpm # 卸载 rpm -e package # 查看已安装 rpm -qaAIX 的 rpm 和 Linux 上的 rpm 基本一致但要注意 AIX 的 rpm 和 installp 是两套独立的体系用 installp 装的包用rpm -qa看不到反之亦然。10.3 升级操作系统AIX 操作系统的升级通常用smitty update_all或者installp命令完成但升级前必须做好备份严谨一点的话还要先在测试环境验证。# 升级系统到指定版本 installp -acgXd /path/to/update all # 查看系统当前级别和可用更新 oslevel -s oslevel -q升级前建议先执行oslevel -q查看系统缺哪些维护包然后只安装确实缺少的部分。盲目升级全部补丁包有可能引入新的问题。11. 常见故障排查思路与实战记录再分享几个我在实际生产中踩过坑、排过障的真实场景每一个都对应一套排查命令和思路。11.1 场景一rootvg 空间不足导致系统异常现象系统响应极慢部分命令执行报错Filesystem full。排查步骤# 查看文件系统使用率 df -g # 确认是否是 / 或 /var 目录打满 df -g / /var # 找出大文件 du -g /var/* | sort -rn | head -10 # 清理临时文件 rm -rf /var/tmp/*当时发现/var使用率 100%进一步定位是/var/adm下的日志文件不断增长最后清理了日志并配置了日志轮转问题解决。11.2 场景二errpt 硬件报警磁盘即将损坏现象errpt -a刷出大量Permanent错误CLASS为HTYPE为DISK。排查步骤# 查看错误详情 errpt -a | grep -A 5 DISK # 查看磁盘状态 lspv # 确认具体是哪个物理盘 lsdev -Cc disk如果确认某块盘有问题建议尽快安排更换。在更换前可以先把数据迁移到同卷组的其他硬盘# 迁移 hdisk1 上的所有数据到 hdisk2 migratepv -l hdisk1 hdisk2migratepv是个好命令能把物理卷上的逻辑卷数据完整搬到另一块盘上迁移完成后可以安全移除故障盘。11.3 场景三数据库连接数飙升导致端口耗尽现象应用报错Cannot assign requested address新连接无法建立。排查步骤# 查看 TIME_WAIT 状态的连接数 netstat -an | grep TIME_WAIT | wc -l # 查看端口范围设置 no -a | grep tcp_ephemeral_min no -a | grep tcp_ephemeral_max # 调整临时端口范围 no -p -o tcp_ephemeral_min10000 -o tcp_ephemeral_max65000AIX 的临时端口范围默认比较小如果应用是个高并发的服务容易出现端口耗尽。调整no参数可以让临时端口范围变大但要注意不能和已有服务端口冲突。11.4 常见错误命令速查表报错信息可能原因解决方向Filesystem full文件系统空间不足df -g定位清理或扩容Device is busy设备被占用fuser -c /mountpoint查看占用进程Cannot allocate memory内存不足或进程数超限vmstat 1 5定位调整 ulimit0516-404卷组有问题lsvg查看状态syncvg同步errpt H CLASS硬件故障lspv、lsdev定位硬件fuser命令在排查Device is busy时很关键# 查看占用 /data 的进程 fuser -c /data # 杀掉占用 /data 的进程 fuser -k /data注意fuser -k会直接终止占用进程执行前确认进程是否可以杀掉。12. 几个值得长期坚持的 AIX 运维习惯最后分享几个我实际工作里验证过很多年的习惯不一定都是命令技巧但长期坚持下来确实能少踩坑。第一所有重要操作前先打印现状。修改卷组、扩容文件系统、卸载文件系统任何操作之前先执行一遍lsvg、df -g、lsps等相关命令保留现场输出。就算后面出了问题能从输出里快速定位操作前后的差异。第二errpt 养成定期巡检的习惯。建议每天至少执行一次errpt -a只要出现新的Permanent错误就及时处理不要等到系统崩了才开始看日志。第三善用 AIX 的 SMIT 菜单。刚入门时不熟悉命令完全可以用smitty菜单完成大部分日常操作命令执行时 SMIT 会显示底层命令跟着菜单操作大概率不会搞错。熟练后再回归命令行效率更高。第四遇到问题先查 IBM 官方文档。AIX 的命令细节很多不同版本之间也有差异遇到不确定的参数直接去查官方文档不要凭 Linux 的使用习惯生搬硬套。第五文件系统扩容时给足余量但不要一次扩太多。比如数据库目录建议一次扩 20% 或 30% 的余量既避免频繁扩容也不会因为一次性扩太多导致空闲空间浪费。第六注意 AIX 的 root 用户默认 shell 是 ksh很多 Linux 运维习惯的 bash 特性在 AIX 上不存在比如!!历史命令展开、source ~/.bashrc这些需要适配 ksh 的用法。日常写脚本也尽量用 ksh 兼容语法避免跨平台执行时报错。AIX 虽然生态相对封闭但它在企业核心系统里扎根多年稳定性确实经得起考验。对运维工程师来说掌握 AIX 的命令体系和底层逻辑不仅多一门技能很多在 AIX 上验证过的运维思路放到 Linux 上也一样受用。刚开始从 Linux 切换到 AIX 会有一段阵痛期但只要把常用命令练熟把 LVM 和文件系统的关系理清楚后续维护起来就顺手多了。