
简介面向 IBM Power Systems 服务器运维工程师与系统管理员的 AIX 5L V5.3 命令参考手册定位为日常维护、系统管理及故障排查的速查工具书。全书 3756 页按字母顺序收录了 accept/reject、acct 系列、acl 系列、adb、aixpert、alt_disk_install 等命令覆盖 TCP/IP 连接管理、会计审计、访问控制列表、系统自动配置诊断、逻辑卷及备份恢复等关键功能存储相关部分还涉及磁盘管理、RAID 配置与 LVM 操作可辅助管理员完成从基础文件操作到复杂网络与存储规划的全流程工作。包内为单个 PDF 文件大小 17.92MB便于检索和跨设备阅读。已有 213 人学习下载适合希望快速上手 AIX 命令并提升 Power 服务器运维水平的初中级工程师。 前阵子整理手头的 AIX 运维笔记发现零散的 AIX 操作系统命令记录已经攒了不少。不少刚接触小型机的朋友总是问我AIX 和 Linux 看起来差不多命令是不是也差不多这话只对了一半。AIX 作为 UNIX 家族里的商业系统很多命令的用法、参数和输出风格跟 Linux 有相当大的差异。比如lsattr、lscfg、smitty这些命令在 Linux 里根本没有ps命令的参数风格也完全不同。如果直接拿着 Linux 的思维去敲 AIX轻则命令报错重则把系统配置改出问题。这也是为什么我特别想把 AIX 命令单独整理成“详解”级别的内容而不是把 Linux 命令大全换个名字就完事。这篇博文适合小型机运维、Oracle DBA、系统集成工程师以及刚从 Linux 转过来的同学目标是帮你快速掌握最常用的 AIX 命令覆盖巡检、排障、扩容、安全加固这些真实场景。1. 为什么 AIX 命令值得单独整理一份详解1.1 AIX 与 Linux 命令的差异到底有多大AIX 和 Linux 虽然在很多基础命令上长得像但骨子里差别很大。拿最常见的进程查看来说Linux 里大家习惯用ps aux在 AIX 上会直接报错或不完整正确姿势是ps -ef。再看系统资源监控Linux 用topAIX 自带的是topas功能更强但参数和交互方式不一样。文件系统层面Linux 常见 ext4、xfsAIX 默认是 jfs2相关操作命令自然也不同。软件安装上Linux 有 yum、aptAIX 用installp和 RPM。这些差异意味着不能靠“感觉”去敲 AIX 命令尤其是涉及到系统配置和存储的命令一旦用错影响可能不可逆。比如在 AIX 中删除逻辑卷rmlv不会像 Linux 的lvremove那样反复确认一个回车可能就把数据卷删了。另外AIX 的在线帮助体系也多了一层smitty菜单工具很多人忽略它但它在故障场景里反而比记命令更可靠。1.2 这份命令详解适合谁、能解决什么问题如果你是刚接手 AIX 小型机或者公司里有一批 Power 服务器需要维护这份内容就是给你准备的。阅读完你会掌握三件事第一日常巡检该敲哪些命令怎么看输出第二系统报错、空间不足、性能变慢时用什么命令快速定位第三等保、Oracle 数据库巡检里经常要执行的账号安全命令具体怎么用。我不打算把所有命令从头到尾罗列一遍那样反而没有重点。真正的做法是把高频命令挑出来结合我在实际服务器上踩过的坑告诉你每条命令解决什么问题、有哪些容易忽略的细节。下面开始进入正题。2. 系统信息与硬件、用户管理从登入到排查的基础2.1 一次看清算力配置系统版本与硬件信息命令登录 AIX 后第一件事建议先确认当前系统版本和硬件配置。因为后续很多补丁、软件安装都依赖版本信息。常看的命令有下面这些命令作用示例输出oslevel -s查看系统技术包版本TL/SP7100-05-06-2145uname -a查看内核、主机名、机器架构AIX hostname 1 7 powerpcprtconf查看内存、CPU、系统配置包含 Memory 大小、Processor 信息lsdev -C列出系统已定义设备设备名状态lscfg -vp查看设备详细属性含序列号、固件一长串 device 信息举个例子判断机器有多少颗物理 CPU可以执行lsdev -Cc processor它会列出 processor0、processor1 等数量就是物理处理器个数。查询内存大小用prtconf | grep Memory Size。此外lscfg -vp用在售后报修、核对序列号时非常关键很多机型没有单独的序列号查询命令用它最靠谱。需要提醒的是AIX 中查看设备状态要看lsdev -C输出里的Available和Defined。Available表示设备可用Defined表示系统认到但尚未配置如果在设备列表里看到很多Defined要注意是否驱动或资源没配好。2.2 用户与资源限制limits -a 到底怎么用很多运维搜“aix查看用户限制limits -a”其实ulimit -a只是查看当前 shell 进程的资源限制并不是查看“系统用户配置”的最终途径。AIX 中资源限制的完整链路是/etc/security/limits文件定义默认值用户属性如lsuser -f可能覆盖它当前登录 shell 的ulimit又会受启动脚本影响。先看临时限制直接执行$ ulimit -a time(seconds) unlimited file(blocks) 2097151 data(kbytes) 131072 stack(kbytes) 32768 memory(kbytes) 32768 coredump(blocks) 2097151 nofiles(descriptors) 2000 threads(per process) unlimited processes(per user) unlimited每一行含义time是 CPU 时间file是单个文件大小上限data是数据段大小nofiles是最多打开文件数processes是最多进程数。Oracle 安装时经常要求把nofiles调大否则会报 “unable to create semaphore” 或文件描述符不够。但注意ulimit -a只是当前会话值。要看系统里某个用户的完整限制应该用lsuser -f username$ lsuser -f oracle oracle: id201 pgrpoinstall ... fsize2097151 cpu-1 data131072 stack32768 core2097151 nofiles2000 processes-1修改用户限制推荐用smitty chuser进入菜单操作或者用chuser nofiles65535 oracle。如果想全局改编辑/etc/security/limits里的default段落。改完必须让用户完全注销再重新登录不能只开一个新终端因为登录会话启动时会读取这些配置。这里也体现了一个常见误区直接执行ulimit -n 65535只对当前 shell 有效换个连接就没了永久生效一定要改用户属性或/etc/security/limits。3. 存储与文件系统LVM 和日常空间维护命令3.1 认识 AIX 的 LVM 命令体系AIX 的 LVM 概念和 Linux 类似都是 PV物理卷、VG卷组、LV逻辑卷但命令完全不同。Linux 用pvcreate、vgcreate、lvcreateAIX 用mkvg、mklv并且多了 PP物理分区的概念。PP 的大小在创建卷组时通过-s指定常用 64MB 或 256MB。先熟悉查看命令lspv列出所有物理卷能看到 PV 属于哪个 VG。lsvg列出所有卷组名。lsvg -l rootvg查看 rootvg 内逻辑卷列表和挂载点。lslv lvname查看某个逻辑卷的详细属性比如 PP 数、是否可镜像。举个例子新增一块磁盘并创建一个用于数据库备份的卷组datavg挂载到/backup。实操步骤大致是lspv确认新盘盘符假设是hdisk1。mkvg -y datavg -s 256 hdisk1-s 256表示 PP 大小为 256MB。crfs -v jfs2 -g datavg -a size20G -m /backup创建 JFS2 类型文件系统并挂载到/backup。mount /backup或直接写入/etc/filesystems设置自动挂载。这里的关键点是crfs会自动更新/etc/filesystems但mount前要先确认挂载目录已创建。如果目录不存在crfs会报错或创建失败。另外在线扩容推荐chfs -a size2G /backupJFS2 支持在线扩展但不能在线收缩所以扩容前务必确认好需求别拍脑袋加空间。3.2 文件系统扩容与空间排查日常运维中最常见的告警就是“文件系统使用率超过 80%”。AIX 上排查空间第一步是df -k$ df -k Filesystem 1024-blocks Free %Used Iused %Iused Mounted on /dev/hd4 5242880 1234567 76% 1234 1% / /dev/hd1 2621440 2100000 20% 33 1% /home /dev/hd9var 10485760 3000000 72% 5678 2% /var%Iused是 inode 使用率如果这个数字到 100%即使空间有余也可能提示“文件系统忙”或无法创建新文件。排查大文件用du -kx /路径 | sort -rn | head-x表示不跨文件系统。当发现某个文件系统空间不足时如果 PV 有剩余空间直接chfs -a size1G /var即可。如果没有剩余空间需要先用extendvg rootvg hdiskX将新盘加入卷组再执行chfs。注意扩容根目录/时尤其要小心别一次性加太多最好用smitty chfs菜单它会检查参数合法性。曾经遇到过一个很隐蔽的问题磁盘空间明明df显示满了但du找不出大文件。最后发现是某个进程删除了日志文件但未释放句柄导致空间一直被占用。AIX 下排查办法是fuser -u /var/log/messages它会显示正在占用该文件的进程或者用fuser -kx /var/log/messages强制杀死占用进程。这个思路比单纯删文件有效得多。4. 网络、启动引导与系统安全加固4.1 网络配置与连通性排查命令网络排查在 AIX 上也是基本功。先看接口 IP 和状态ifconfig -a查看所有网卡 IP、掩码、状态。lsdev -Cc if列出系统识别的网络接口如en0、en1。netstat -in按接口显示收发包数量用来判断丢包。netstat -rn显示路由表。entstat -d ent0查看物理网卡详细状态包括速率、双工、错包。如果你看到接口状态是DOWN可以先ifconfig en0 up或者用smitty tcpip配置。AIX 中修改 IP 很不建议直接改文件用smitty tcpip最安全它会同步更新网络配置文件和路由。很多人搜“telnet命令怎么用”在 AIX 上telnet通常是用来测试端口连通性的。比如要测数据库服务器 1521 端口通不通$ telnet 10.0.0.1 1521 Trying 10.0.0.1... Connected to 10.0.0.1. Escape character is ^].出现Connected就说明端口通输入quit退出。如果端口不通会提示connect failed。不过我还是建议任何远程管理都改用sshtelnet 明文传输密码在生产环境风险很大。即使做端口测试也可以改用nc -zv 10.0.0.1 1521。4.2 小型机启动引导与故障排查AIX 小型机的启动引导和 x86 服务器不太一样它有一套 SMS系统管理服务菜单。正常启动流程是加电自检 - 进入 SMS 或自动引导 - 加载/boot- 启动内核 - 执行/etc/inittab里的服务。如果系统无法正常引导可以看到主机的 LCD 操作面板上有错误代码比如B181这类。查看和修改启动顺序的命令是bootlist# 查看当前正常模式启动序列 bootlist -m normal -o # 修改为 hdisk0 优先hdisk1 作为备选 bootlist -m normal hdisk0 hdisk1修改前一定记录原始序列否则如果引导设备设置错误机器可能直接起不来。如果系统已经起不来需要接串口终端或 HMC在开机自检时按1进入 SMS 菜单选择正常模式引导设备和引导选项。系统层面的故障排查要看错误日志errpt -a显示所有错误详细信息errpt -d H只看硬件相关错误errpt -t PERM按类型过滤。比如$ errpt -d H IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION F1234567 T0309150700 H S hdisk0 DISK OPERATION ERROR出现硬件错误时可以运行diag进入在线诊断工具对内存、CPU、磁盘做测试。如果测试结果出现错误优先检查硬件和微码版本再考虑是否是驱动问题。4.3 安全基线检查与等保相关命令做 Oracle 数据库服务器等保测评或内部安全加固时AIX 上常需要检查账号口令策略、用户权限和开放端口。常用的命令如下lsuser -f ALL导出所有用户的属性用于核对是否存在空密码、长期未改密。lssec -f /etc/security/user -a minlen -a maxage查看全局密码最小长度和最大有效期。chsec -f /etc/security/user -s default -a minlen8 -a maxage5设置密码最短 8 位、5 周内必须更换。pwdadm -c user清除用户密码标志强制该用户下次登录时修改密码。lssec -f /etc/security/user -s root -a rlogin检查 root 是否允许远程登录安全基线要求一般设置为false。find / -perm -4000 -o -perm -2000 -type f -print列出所有 SUID/SGID 文件排查是否有可疑提权文件。netstat -an | grep LISTEN查看当前监听端口确认没有多余的高危端口。安全检查时最容易被忽略的是/etc/security/user中的histsize和maxage参数前者决定历史密码保留个数后者决定密码最长使用周数。等保整改时经常要求histsize10、maxage4这类值。修改后需要测试一个普通用户重新登录确认策略已生效。5. 性能监控、Shell 脚本技巧与乱码处理5.1 性能监控命令实操AIX 自带的性能监控神器是topas它的界面比 Linuxtop信息更全默认能看到 CPU 队列、内存、换页、磁盘、网络等。直接敲topas进入交互界面按m可以看内存详细按n看网络按d看磁盘按q退出。如果想输出一段时间的趋势用vmstat和iostat# 每 2 秒采样一次连续 10 次 vmstat 2 10 # 显示磁盘 I/O 统计每 2 秒一次 iostat -d 2 # 查看真实内存和页空间使用 svmon -Gvmstat输出里重点看r运行队列长度和waIO 等待。如果r持续大于 CPU 核数说明 CPU 资源紧张如果pi/po大量出现说明物理内存不足系统在做换页如果iostat里% tm_act很高磁盘可能存在瓶颈。查消耗 CPU 最高的进程可以用ps -eo pid,user,time,args | sort -k3 -rn | head -10这条命令把第二列的timeCPU 时间按数字排序列出前 10 个。另外如果系统里装了nmon也可以统计历史性能数据不过现在大多数场景直接用topas已经够用。5.2 Shell 脚本实用技巧shift 命令与编码转换AIX 默认的 shell 是 Korn Shellksh和 Bash 略有区别但核心语法兼容。写脚本处理参数时shift命令很常用。它会把位置参数左移一位也就是$2变成$1$#减 1。一个典型场景是解析命令行选项#!/bin/ksh if [ $# -eq 0 ]; then echo Usage: $0 [-a] [-b] exit 1 fi while [ $# -gt 0 ] do case $1 in -a) echo 执行 A 操作 ;; -b) echo 执行 B 操作 ;; *) echo 未知参数: $1 ;; esac shift done每次处理完$1后通过shift丢弃循环就能逐项处理所有参数不会死循环。这个技巧在 ksh 和 bash 里都有效。再来说说“aix 乱码”这个高频搜词。乱码的根源几乎都是编码不一致。AIX 系统默认语言环境可能是C或en_US传入的脚本或日志可能是 UTF-8 或 GBK一旦终端编码和文件编码对不上中文就变成锟斤拷。解决办法是# 查看当前语言环境 locale # 临时将终端语言改为 UTF-8 export LANGen_US.UTF-8如果文件本身是 GBK但终端是 UTF-8可以用iconv转换编码再查看iconv -f GB18030 -t UTF-8 文件名 文件名_utf8.txt但要注意AIX 自带的iconv可能需要安装额外的文件集常见的文件集是bos.iconv.*。如果系统不支持也可以直接用vi -b查看二进制模式或者用cat -v查看不可见字符先判断原始编码再做转换。另一个省事的办法是写脚本时统一在文件开头加export LANGen_US.UTF-8这样至少保证该脚本运行时输出不乱码。6. 常见问题与排查技巧实录6.1 用户资源限制不生效limits 改了却没用很多人改完/etc/security/limits里某个用户的nofiles后发现重新登录还是旧值。排查顺序很重要。第一用lsuser -f user看该用户是否已经有单独的限制属性因为用户单独属性的优先级会覆盖全局文件。第二检查/etc/security/user里的default段是否设置了相同的参数。第三查用户的.profile或系统的/etc/profile里有没有写ulimit覆盖语句。很多时候是启动脚本里写了一行ulimit -n 1024把用户属性改得多大都会被压下来。解决方法是优先使用smitty chuser修改用户属性它会同步更新/etc/security/user和/etc/security/limits避免手动改不一致。改完后让用户执行exit完全退出登录再重新登录验证。6.2 文件系统显示满但找不到大文件出现“df 显示 100%但 du 找不到大文件”的情况大概率是删除的文件还被进程占用。用fuser -u 目录查看比如fuser -u /var它会输出 PID。如果确认是对应进程写日志占用可以fuser -k 目录结束进程或者让应用团队重启应用释放句柄。如果搜索大文件可以用find / -xdev -type f -size 1G -exec ls -lh {} \;-xdev限制不跨文件系统执行起来更快。另一个隐藏原因是 JFS2 的保留空间AIX 文件系统默认会保留一部分空间给 rootdf 显示 100% 但实际可用空间可能还有。可以用lsfs -q 挂载点查看保留策略。6.3 命令缺失报 “ksh: xxx: not found”AIX 的命令不是所有都在系统安装时就有比如lsof可能需要单独安装。出现 not found 时先用lslpp -l | grep 命令名看文件集是否安装。如果未安装用smitty installp安装对应的bos.文件集。有些命令在/usr/sbin下要确认当前用户的PATH包含/usr/sbin。另外 AIX 中grep -P不支持要用grep -E代替这也是 Linux 转过来的同事经常踩的坑。6.4 乱码问题的一个通杀思路最后聊一下编码乱码。假设你已经按照前面方法设置LANG还是乱码可以退一步先不依赖语言设置直接查文件内容十六进制od -A x -t x1z 文件名 | head -20如果看到大量xxe4开头的字节一般是 UTF-8如果看到xxd6、xxd0等 GBK 编码的常见中文字头就尝试 GBK 系列转换。确定源编码后再配合iconv转成终端支持的编码。对于运维现场实在来不及转换的时候可以用strings提取文件中的可读 ASCII至少能先看临时日志的报错关键字。6.5 实测心得先记这三条命令我带新人时总会让他们在测试机上先敲三遍命令oslevel -s、lscfg -vp、lsvg -l rootvg。这三个命令能把系统版本、硬件、卷组结构一次看明白很多排障都是从它们开始入手的。AIX 命令的难点从来不是死记参数而是理解命令背后的系统模型。懂得查man、用smitty、看errpt比背下所有命令都重要。新接触 AIX 的朋友建议把你实际维护的机器上高频出现的命令整理成一页速查表贴在工作台旁边。我第一次独立处理小型机故障时就是靠errpt -d H和bootlist这两条命令定位到引导盘异常少走了不少弯路。希望这份详解也能帮你少踩一些我当年踩过的坑。本文还有配套的精品资源点击获取