尧图精选

AIX命令与Linux差异详解:从用户管理到故障排查实战

🕒 发布时间:2026/9/6 18:36:20 📁 来源:尧图网络
简介这是一份面向 AIX 系统管理员与运维工程师的命令参考手册聚焦 IBM Power Systems 环境下的用户管理、网络配置、存储维护与安全控制适合需要系统学习 AIX 5L V5.3 或日常查阅命令语法的人群。压缩包内为单个 PDF 文件共 3756 页大小 17.92MB可通过目录按字母顺序快速定位命令条目。已有 213 人学习下载。内容从基础的文件操作、进程管理到网络监控、安全加固与存储备份均有覆盖既解释了 accept、acct、acl、adb 等常用命令的具体用法也说明了 aixpert 自动化配置、逻辑卷管理和磁带备份恢复等进阶场景。每条命令均给出语法说明与典型示例附录中的分类索引能帮助管理员在排障时快速找到对应工具。对于希望提升维护效率、理解命令背后管理逻辑的读者这是一份可直接查阅的工具型资料。 用过AIX的人都有一种感觉搜资料最怕搜出来的全是Linux命令照着敲一遍十个里面有八个别扭剩下两个直接报错。作为在Power小型机上折腾过的运维我可以很负责任地说AIX命令体系和Linux只是“看起来像”内核逻辑完全不同。这篇东西不打算做命令手册式的罗列而是把日常用得最多、最容易踩坑的AIX命令拆开讲讲清楚它们解决什么问题、为什么这么写、以及和Linux的差异到底在哪。适合刚从Linux转过来的运维也适合在银行、证券、制造这些传统行业里被AIX小型机困住的新手。1. 先搞清楚AIX命令和Linux命令的边界1.1 为什么“差不多”是最大的坑很多初学者上手AIX时第一反应是“这不就是Unix嘛Linux我会”。结果实际敲下去就发现ls、cd、grep、awk这些基础命令确实通用但一旦涉及设备管理、用户属性、存储卷组命令体系和语义全都变了。以最典型的设备命名来说Linux下磁盘是sda、sdbAIX下是hdisk0、hdisk1网卡在Linux里是eth0、ens192AIX里物理网卡叫ent0IP接口叫en0。命名都不一样后面所有跟设备打交道的命令自然也对不上。更深层的差异在配置管理方式上。Linux的设备配置通常散落在/etc下的文本文件里改配置就是改文件AIX则把设备配置、用户信息都放到ODM库Object Data Manager里管理。你直接用vi去改东西系统未必认正确做法是用chdev、chuser、chsec这类命令去改让系统把数据同步进ODM库。再说默认Shell。AIX默认Shell是ksh不是bash。这意味着很多Linux下的bash特性比如[[ ]]条件测试、source命令AIX里是.以及部分数组语法都不能直接照搬。脚本迁到AIX上第一件事就是检查Shell语法兼容性。1.2 上手AIX前必须建立的两张“底图”学习AIX命令我建议先建立两张图。第一张是设备层次图。lsdev -Cc disk列出所有磁盘设备lsdev -Cc processor看CPUlsdev -Cc adapter看适配器。记住-Cc这个参数-c指定设备类别后面跟的是类别名。这个命令相当于AIX的“设备管理器”是所有硬件排查的起点。第二张是卷组结构图。AIX的存储体系和Linux完全不同它把物理磁盘PV划入卷组VG卷组里再切出逻辑卷LV逻辑卷上才能建文件系统。一眼看懂AIX存储布局靠的是lspv、lsvg、lspv -l、lsvg -l这组命令的组合。提示AIX里有一个万能的文本菜单工具smittySystem Management Interface Tool几乎所有管理操作都能通过它完成而且它会自动生成对应的命令。新手不知道怎么敲命令时先进smitty菜单操作一遍看它提示的命令是什么慢慢就熟了。2. 用户与资源限制几乎每天都要摸一遍的命令2.1 查看用户限制的正确姿势热搜词里有个“aix查看用户限制limits -a”这个需求确实高频。AIX下查用户限制最常用的是两条命令。一条是ulimit -a查看当前Shell会话的资源限制。注意它是针对“当前进程会话”的换一个用户登录、或者切换了Shell看到的结果可能都不一样。另一条是lsuser -f 用户名查看某个用户账户在系统里的属性配置。输出内容很多重点看这几项属性名含义常见值fsize单个文件大小上限2097151块cpuCPU时间上限秒-1表示不限data数据段大小上限KB262144nofiles可打开文件描述符数1024或更大rss物理内存上限KB65536stack栈大小上限KB32768实际排查中Oracle、DB2这类数据库最常遇到的问题就是nofiles不够或者fsize太小导致备份文件写不进去。此时用chuser nofiles65536 用户名去调整改完让用户重新登录即可生效不需要重启。2.2 创建用户和改密码策略千万别手动编辑文件AIX里创建用户我建议用smitty security users进入菜单操作也可以直接用mkuser命令。举个实际例子mkuser id2100 home/home/oracle oracle这条命令创建oracle用户指定UID为2100、家目录为/home/oracle。但要注意AIX创建用户时不会像Linux那样自动创建家目录你用su - oracle登录后可能会发现目录不存在需要手动mkdir并chown。与Linux另一个显著不同是AIX默认对新用户不强制设置密码。创建完用户必须马上执行passwd oracle设置密码否则该用户无法正常登录。修改全局密码策略不要直接vi/etc/security/user而是用chsec命令chsec -f /etc/security/user -s default -a minlen8 chsec -f /etc/security/user -s default -a minage1 chsec -f /etc/security/user -s default -a maxage10这三条分别设置最小密码长度8位、最短使用天数1天、最长使用天数10天。如果项目要求所有用户密码定期过期也可以只针对某个用户改chuser maxage10 oracle提示AIX对UID的管理有保留段不同版本保留范围不同建议自定义用户从2000以后开始。另外不要轻易删除系统自带用户很多服务的运行依赖这些账户。3. 存储与文件系统AIX最值钱的那套命令3.1 PV、VG、LV三层结构的日常查询AIX的存储设计是典型的三层物理卷PV划入卷组VG卷组里创建逻辑卷LV逻辑卷再承载文件系统或裸设备。这和Linux的LVM很像但命令完全不同。日常查看磁盘和卷组状态用这组命令lsdev -Cc disk # 查看所有磁盘设备 lspv # 查看每个PV所在的VG和PVID lsvg # 查看所有VG lsvg -o # 只看活动的VG lsvg rootvg # 查看rootvg详情重点看PP大小、总PP数 lsvg -l rootvg # 查看rootvg里所有LV的信息 lspv -l hdisk1 # 查看某块磁盘上分布了哪些LVlsvg -l rootvg的输出里TYPE列是关键。jfs2说明这个LV上跑的是JFS2文件系统jfslog是日志设备boot是启动逻辑卷。如果看到TYPE列是raw说明是裸设备数据库通常直接使用这种LV。3.2 文件系统扩容实战chfs在线扩容AIX上给文件系统扩容是我做过次数最多的操作。核心命令是chfs而且JFS2文件系统支持在线扩容不用卸载、不用重启。chfs -a size10G /data这条命令的意思是把/data文件系统增加10GB。执行完后用df -g /data确认新的容量。如果在扩容前无法确定当前大小可以先df -g看当前使用量再决定加多少。这里有个细节chfs要求VG里有足够的空闲PP如果没有就要先扩VGextendvg vgdata hdisk2extendvg把hdisk2加入vgdata卷组然后把PP划给LV并扩展到文件系统层面。整个链路是加磁盘 → 扩VG → 扩文件系统一步都不能反。还有一个常见坑新建文件系统时如果用crfs命令要记得直接指定挂载点crfs -v jfs2 -g vgdata -a size4G -m /backup但如果你用mklv创建了裸LV那还需要手动mkfs和mount跟Linux套路接近但必须注意设备文件名是/dev/lvname块设备和/dev/rlvname字符设备数据库裸设备用的是字符设备。3.3 裸设备给数据库用的那些事很多Oracle或Db2项目在AIX上不走文件系统直接用裸设备。创建过程一般是mklv -y oradata_lv vgdata 100这个命令在vgdata卷组里创建一个名为oradata_lv的LV占用100个PP。创建完后系统会自动生成/dev/oradata_lv和/dev/roradata_lv两个设备文件其中r开头的是字符设备裸设备使用这个。使用裸设备的好处是绕过文件系统缓存直接读写适合数据库这类对IO路径延迟敏感的应用。但坏处也很明显没有df这种命令帮你看容量管理全靠lsvg -l和lslv。lslv oradata_lv可以查看逻辑卷的详细属性比如PP数、镜像情况、所属VG。镜像mirror是AIX比较常用的高可用手段mklv加-c 2参数就可以创建双份镜像mklv -y mirror_lv -c 2 vgdata 50提示AIX卷组的VG State状态如果不是active整个卷组的数据都不可用。遇到这种情况先查errpt大概率是某块磁盘掉了别急着重建LV先恢复PV再激活VG。4. 故障排查把命令组合起来用的完整思路4.1 errptAIX排错的第一步AIX上排查任何硬件或系统故障第一站都是errpt。这个命令读取系统的错误日志按时间列出错误记录。errpt # 汇总错误按时间倒序 errpt -a # 查看详细错误内容 errpt -d H # 只看硬件错误 errpt -d S # 只看软件错误 errpt -aj 错误ID # 查看指定错误的详情errpt输出中每行包含错误ID比如A6AB45AB后续用errpt -aj A6AB45AB就能看到完整堆栈和资源名。排查阵列丢盘、内存报错、网卡故障时这套命令是必修课。我的习惯是每周定时把errpt -d H的输出导出来看一眼很多硬件隐患比如内存CE错误、磁盘扇区重分配在早期就有征兆等撑到业务故障再处理就被动了。4.2 性能排查topas、vmstat、svmon的组合AIX性能排查第一工具是topas功能类似Linux的top但信息更丰富。topas界面里按c看CPU按核分布、按m看内存、按d看磁盘按n看网络。它还能直接用topas -P监控特定进程的CPU和内存占用。内存这块AIX有个独特概念叫“计算型内存”和“文件型内存”。简单理解AIX会把空闲物理内存大量用作文件缓存所以svmon -G看内存统计时pg space分页空间的使用情况比单纯的“剩多少内存”更重要。排查内存不足重点看分页空间是否持续增长svmon -G lsps -alsps -a列出分页空间类似Linux swap的定义和使用率。如果分页空间使用率过高说明物理内存吃紧而不是单纯看topas里的Free内存。CPU排查常用vmstat 1 5观察r运行队列、b阻塞进程、waIO等待三列。r持续大于CPU核数说明CPU饱和b和wa同时很高则大概率是存储IO瓶颈。4.3 乱码问题先分清是终端问题还是环境变量问题AIX乱码是出现频率特别高的问题很多人在网上搜“aix乱码”就卡住了。乱码的根源通常只有两类。第一类是终端编码不匹配。AIX本身使用ASCII/Latin1较多中文环境则用GBKzh_CN而SecureCRT、Xshell这类终端默认是UTF-8。解决办法是登录后执行export LANGC或者将终端编码手工切换到GBK/UTF-8具体看AIX上的语言环境。执行locale命令可以查看当前系统的语言环境设置。第二类是文件内容本身编码就乱。比如从Windows导入的脚本或数据文件用iconv转码即可iconv -f GBK -t UTF-8 input.txt output.txt这里特别提醒不要一看到乱码就急着改/etc/environment里的全局LANG设置先临时export LANGC试一下确认是环境问题再做持久化改动。改全局配置文件前先确认是不是所有用户都需要中文环境否则改了反而给其他人添乱。4.4 一个完整的故障排查案例文件系统满了综合演练一下。假设df -g看到/根文件系统使用率100%业务写入报错。排查路径是这样df -g # 确认哪个文件系统满了 du -g /* | sort -rn | head # 从根目录一层层往下找大目录 find / -xdev -size 1G -ls # 在根文件系统范围内找大于1GB的文件 errpt -d H # 同时排除硬件层面异常找到大文件后先确认能否清理比如日志、core dump。如果是正常的业务数据增长导致空间不足那就走chfs -a size5G /扩容前提是rootvg还有空闲PP。这个案例看着简单但我在实际运维中见过有人执行du -g / -h把系统搞到负载飙高原因就是没加-x参数跳过其他文件系统把整个存储都扫了一遍。AIX下du扫全盘很费IO生产高峰期谨慎操作。5. 远程管理与高频组合命令解决日常碎片问题5.1 telnet命令怎么用从连通性测试到服务排查热搜词里有“telnet命令怎么用”在AIX环境里telnet出现频率确实很高但场景已经变了。现在的AIX服务器出于安全考虑大多不开放telnet服务端但telnet客户端仍然是排查网络连通性最趁手的工具。比如数据库连不上快速判断网络通不通telnet 192.168.10.20 1521如果端口能通界面会变成空白或显示banner按Ctrl]再输入quit退出。如果端口不通会提示连接失败或超时。这个方法比ping更实用因为它直接验证的是“目标端口是否在监听”而不是“主机活着没有”。在AIX上查看telnet服务本身状态lssrc -t telnet这个命令查看inetd子服务里telnet的运行状态如果是active说明服务在跑。阿里云的、安全基线检查时如果要求关闭telnet用stopsrc -t telnet停止服务即可。但说句实话现在生产环境都该用SSHtelnet明文传输抓包就能看到密码风险太大。5.2 远程管理AIX上装SSH和实际体验AIX默认不自带OpenSSH很多版本需要额外安装。检查是否已安装lslpp -l openssh.base如果没有输出说明还没装。安装后启动服务startsrc -s sshdAIX的SSH配置文件和Linux几乎一致路径在/etc/ssh/sshd_config。迁移Linux习惯时主要注意两点AIX的sshd_config里默认PermitRootLogin策略可能不同按现场安全策略调整另外AIX有些旧版本对AuthorizedKeysFile路径的解析和OpenSSH新版本有差异密钥登录失败时先看/var/log/secure或/var/adm/ras/syslog。5.3 写脚本时最常用的一组命令组合AIX运维日常写脚本最常用的组合是find、grep、awk、sed和Linux用法大体一致但有几个坑需要单独说。find命令AIX版本默认不支持-regextype参数正则写法要兼容POSIX风格。比如找30天前修改的日志文件find /var/log -mtime 30 -name *.log -exec rm {} \;在AIX上执行find ... -exec rm这种写法OK但要小心-name和-mtime的顺序AIX对参数顺序的解析比GNU find要严格一些。grep在AIX上默认不支持-P参数也就是Perl正则用不了。想用更强大的正则用grep -E扩展正则即可。history命令在AIX的ksh里默认可能只保留当前会话的历史记录。想跨会话复用需要设置HISTFILE环境变量。很多人从Linux转过来发现history看不到上次的命令就是这个原因。磁盘清理场景常用du配合排序du -g /data | sort -rn | head -20注意AIX的du支持-g按GB显示这个比Linux的-h更直观因为AIX上存储动辄几个TB用-m显示MB会刷屏。5.4 关于权限和进程的日常操作细节AIX查看进程用ps -ef杀掉僵死进程用kill -9这部分和Linux一致。但AIX有个特点很多系统关键进程以root用户运行杀错一个可能直接触发系统重启或HA切换所以执行kill前一定要ps -ef | grep确认进程归属。调整运行级别和启停服务AIX用lssrc、startsrc、stopsrc这套命令对应Linux的systemctl。比如启停SSH服务startsrc -s sshd stopsrc -s sshd查看系统当前有哪些服务在跑lssrc -a调服务自启动状态AIX用mkitab管理/etc/inittab类似Linux的chkconfig。比如允许SSH随系统启动mkitab sshd:2:once:/usr/sbin/sshd这个格式是固定的字母含义从start到stop的顺序once表示开机执行一次。网上很多教程写得不清楚照抄后开机起不来大概率就是/etc/inittab格式写错了。我个人实际操作中的体会是AIX命令不难难的是你用的命令是否触达了正确的配置层。文件系统不好好看LVM直接mkfs用户限制不通过lsuser而是猜测文件路径最后都会绕远路。把这些底层模型理清了命令不过是顺手的事。本文还有配套的精品资源点击获取
上一篇/下一篇内容由系统自动关联 返回资讯列表 →