zoukankan      html  css  js  c++  java
  • OS + Unix IBM Aix 5.3 / 6.1

    -------------------------------------------------------------------------------------
    -------------------------------------------------------------------------------------
    -------------------------------------------------------------------------------------
    http://www.aixchina.net/

    AIX 5L 学习大纲/简易教程(1)
    http://blog.csdn.net/johnsuna/archive/2006/02/13/597709.aspx

    (一)AIX概述
    AIX(Advanced Interactive eXecutive),是UNIX的一种,是IBM eServer pServies, RS/6000的OS。
    IBM eServer服务器P系统比较出名的是“深蓝”,是RS/6000(SP机型)。
    Unix诞生于1969年,由Bell实验室的Thompson, Ritchie于1971年写成第一版本。1973年UNIX3加入C编译器,Ritchie用C重写了UNIX,发布了UNIX4版本。1978年UNIX Ver7是现代UNIX OS的蓝本。
    X/Open:UNIX标准化的国际组织,也是UNIX商标的所有者。
    AIX Ver1.0于1986年推出。AIX是第一个通过UNIX98标准的UNIX OS。
    RS/6000于1990年发布,使用AIX Ver3。目前,市面装机量最大的AIX版本是AIX Ver4.3。
    2000年——AIX 5.0,支持IBM POWER,Intel 64位平台,支持64位内核。
    2001年——AIX 5.1L,“L”表示Linux affinity,也是第一个兼容Linux的UNIX。AIX 5.1L是第一个支持POWER4处理器的AIX OS。
    2002年——AIX 5.2L;
    目前最新版本是AIX Ver5.3L.
    RS/6000: RISC System/6000
    RISC:Reduced Instruction Set Cycles(精简指令集),RISC通过硬件执行更多的指令,在同一时间周期内能执行多条指令。
    RS/6000分为:
    (1)经典的RS/6000:MCA(微通道结构)总线、SCSI接口,市面上较少。
    (2)基于PCI的RS/6000(PCI和ISA总线结构),型号有:43P、F50、H50、S70、S80、p690、p670、p650等。
    目前最新Power 5处理器支持多线程、多内核。
    三种线程模型:(1)M:1  (2)1:1  (3)M:N(最有效、也是最复杂的模型)
    AIX OS有两种基本运行模式(1)Kernel Mode内核(2)User Mode用户
    AIX中root用户是系统的主要管理员,可执行系统范围内的任何操作。
    第一个装配Power4处理器的IBM服务器是pSeries 690。
    (二)安装AIX OS
    AIX 5L支持IBM POWERPC处理器和Intel Itanium(安腾)处理器。
    需要查看操作系统的版本号?使用:
    oslevel -l Level    列出更早版本
            -g          列出更新,即更晚版本
            -q          列出已知
    AIX版本格式:vv.rr.mmmm.ffff
                 -- -- ---- ----
                 |  |   |    |+----修订(Fix)版本号
    OS Version---+  |   |    
      (版本号)      |   +--修正(Modification)版本号
                    +
         发行(Release)版本号
    补丁包PTF(Program Temporary Fix)
    (1)维护包ML:命名规则4位的VRMF
       eg. 4.3.1.0 升级到 4.3.3.0
             (4310)        (4330)
    (2)推荐维护包RM: VRMF-RM
       eg.4330-08(其中08代表第8个推荐包)
    安装AIX 5L比AIX 4.3多一个是否启用64位内核和JFS2支持的选项。
    确定能否从PowerPC上的CD-ROM上引导AIX 5L安装,使用如下命令:
    lscfg -vl cd*
    安装方法:
    (1)全新覆盖(New and Complete Overrite)
    (2)保留安装(Preservation Install)
    (3)迁移安装 (Migration Install)
    VG卷组(Volumn Group)
    rootvg包含基本的OS(BOS),机器从rootvg启动并将BOS加载到内存。
    重新分配rootvg的空间时,必须重装BOS。
    如有双硬盘,建议一个硬盘安装BOS,使之成为rootvg,另一硬盘则用于存放用户数据。
    保留安装是AIX 3.1或AIX 4.1的默认安装方法,也是安全升级BOS的安装方法。
    将/etc/preserve.list复制到软盘上:
    cd /etc
    ls ./preserve.list | backup -iqv
    迁移安装除不保留/tmp文件系统外,将保留其他所有的文件系统。
    切换32位或64位内核(在POWER平台上)
    (1)root用户进入系统
    (2)ln -fs /usr/lib/boot/unix_?? /unix
    (3)ln -sf /usr/lib/boot/unix_?? /usr/lib/boot/unix
    (4)bosboot -ad /dev/ipldevice
    (5)shutdown -r
    检查AIX的系统状态的常用命令:
    文件系统:     df -k
    设    备:     lsdev -C
    磁盘(物理卷):  lspv
    Paging space:  lsps -a
    配    置:     lscfg -vp
    软    件:     lslpp -l
    用    户:     who
    处理器个数:   lsdev -C | grep proc
    内存大小:     lsattr -El mem0
    (三)启动和关闭AIX系统
    系统引导:
    (1)Normal(正常)模式:多用户模式
    (2)Service(维护)模式:单用户模式
    磁带或CDROM引导系统   ---进入--》 Service模式(单用户模式)
    从硬盘引导系统        ---进入--》 Normal/Service模式
    进入SMS(System Management Service系统管理维护)中可修改系统引导设备列表。
    系统的启动:
    (1)硬件初始化阶段(ROS IPL)[Read Only Storage Inital Program Load]
        +-----------------------------+           +--------------------+
        |  a.内置设备自检 BIST        |  ————>>   |    b.加电自检POST  |
        |    Built-In Self Test       |           | Power-On self Test |
        +-----------------------------+           +--------------------+
         (仅经典RS/6000有此过程a)
    (2)AIX核心初始化阶段
         从硬盘引导BOS ————>> AIX核心初始化————>> 启动系统的初始进程/etc/init ————>> init依据文件/etc/inittab的内容启动其他系统进程。

    关闭AIX:
      +---------------------------+
      |        执行关机命令       |
      |  ------------------------ |
      | shutdown, halt, reboot等。|  ———>> 终止系统中正在运行的进程 ————>> 甚至使机器自动断电
      | (安全)                  |
      +---------------------------+
    rc.boot:一个Shell命令文件,是配置系统的脚本。系统引导期间,init进程执行它三次。
    显示系统启动到现在的时间:uptime(也可用w命令,且它的输出比uptime更详细)
    RAM文件系统是引导镜像(Boot Image)的一部分,完全常驻内存,包含了许多能让引导继续的程序。
    系统的运行级别:11个(编码为0~9,s,S,m,M)
    其中(1)0,1被保留,2是系统的多用户模式,3~9是自定义运行级别。
        (2)s, S, m, M为系统维护模式。
    最有用的两个运行级别是单用户模式(维护模式s,S,m,M)和多用户模式(2)。
    改变系统的运行级别:
    init 或 telinit(Tell init:通知init进程,被链接到init上)
    用法:init 0~9, a,b,c, Q, q, s, S, m, M, N
               ---  -----  ----  ----------  -
            (同前)  |     |     (同前)   |
                      |     |                +--发送停止带有respawn进程的信号
                      |     |
                      |     +---让init进程重新检查/etc/inittab文件
                      |
                      +----------------------------------------------------+
                      |     伪级别,仅处理/etc/inittab文件中RunLevel字段中 |
                      | 包含a, b, c运行级别的那些程序,不中断处于当前系统  |
                      | 运行级别中正在运行的进程,运行级别改变也不会关闭因 |
                      | 带a,b,c而启动的进程。                              |
                      +----------------------------------------------------+
    如:
      init 2 多用户模式
      init s 单用户模式
    /etcomottab中Action字段:创建子进程和对它采取的行动。
    (1)respawn:如未运行,则启动之;否则,不做任何处理,继续/etc/inittab中的其他记录;
    (2)wait        (3)once  (4)boot       (5)bootwait  (6)powerfail
    (7)powerwait   (8)off   (9)ondemand
    (10)initdefault(如有,必须置于第一个非注释行)
    (11)sysinit(如有,必须置于第二个非注释行)
    编辑/etc/inittab文件的命令:
    (1)chitab   修改记录
    (2)lsitab   显示记录
    (3)mkitab   添加记录
    (4)rmitab   删除记录
    bootlist命令:显示和修改引导系统的设备列表,也可显示修改系统引导设备的顺序。
    bosboot -ad /dev/hdisk0   [在hdisk0上创建引导逻辑卷(BLV)]
    alog命令:维护和管理系统日志(see P102)
    odmadd:向alog配置数据库中添加新的日志类型,默认日志类型有:boot, bosinst, nim, dumpsymp。
    alog -f Logfile [-o]     显示日志文件Logfile的内容
    alog -f Logfile | [[-q][-s Size]]  把日志记录到Logfile中
    alog -t LogType -V       显示指定日志类型LogType参数的详细信息
    alog -L                  显示在alog配置数据库中的已定义好的日志类型
    alog -o -t boot          查看引导信息
    也可以使用:smitty alog_show 查看boot log
    安全关闭系统:shutdown(最安全、最彻底)
    (1)如/etc/rc.shutdown文件没有可执行权限,则用:
    chmod +x /etc/rc.shutdown 增加可执行权限。
    (2)然后,可编辑/etc/rc.shutdown文件,把批处理命令写入。
    当执行shutdown时,如此文件存在,就执行它,如返回非零的错误代码,shutdown就停止执行,关闭系统的工作也被终止。
    shutdown -i  可交互模式,提示用户一步步地关闭系统。
    AIX 4.2以上,/usr/sbin/shutdown命令文件中增加了:
    sh /etc/rc.shutdown  执行此文件中的脚本
    也可使用SMIT工具关闭系统:smit shutdown
    紧急情况下停止系统: shutdown -F(最快速度地比较安全的方式)
    单用户模式用halt关闭系统。
    多用户模式,只有当除root的所有其他用户退出时,halt才可执行。
    halt -l   不记录中断系统运行日志
         -q   快速终止系统运行
    (注意:最好不要使用halt,以免数据丢失)。
    shutdown +2 两分钟后关机
    shutdown -r 重新启动操作系统
    reboot命令一般在单用户下重启系统(它会做数据同步工作)。
    获得系统参数autorestart的默认值:   lsattr -D -l sys0
    修改系统参数autorestart的值为true:  chdev -l sys0 -a autorestart=true
    查看更改后的结果:                  lsattr -E -l sys0
    (建议:reboot命令也很危险,少用为妙。)
    关闭系统到单用户模式:
    shutdown -m         (实际上,它调用了: init -s命令)
    注意:必须保证当前工作目录为根目录,所以常常先cd /后再调用此句。
    关闭系统时记录日志
    cat /etc/shutdown.log
    问题:可以在关闭系统时自动执行某个批处理吗?
    启动多用户模式三阶段:
    (1)ROS内核初始化阶段(Read Only Storage Kernel Init Phase)
    (2)基本设备配置阶段(Base Device Configuration Phase)
    (3)系统引导阶段(System Boot Phase)
    init进程重读/etc/inittab文件的条件(之一):
    (1)init进程的子孙进程中有一个进程结束。
    (2)出现电源失败信号SIGPWR。
    (3)用户用init命令发出改变系统运行级别和重新检查/etc/inittab文件的信号(用telinit q或init Q)。
    rootvg刚做过镜像mirror,为使hdisk1可引导系统,需要运行bosboot,然后更新bootlist。
    关机的情况:(大多数P系统服务器很少关机!)
    (1)添加新硬件
    (2)硬件维护
    (3)当出现严重问题时
    关机的顺序与启动顺序相反:
    (1)运行关机脚本 /etc/rc.shutdown
    (2)提醒用户
    (3)关闭用户进程
    (4)停止系统服务进程
    (5)卸载文件系统
    (6)停止服务器
    (7)如果有用-r参数,则重启系统。

    ibm aix 小型机巡检流程

    AIX 启停顺序 

    IBM小型机服务器环境启动关闭顺序:

    http://blog.sina.com.cn/s/blog_5a2405d10100eijb.html###

    硬件启动顺序:

    开机顺序 开存储 开光纤交换机 开小机 关机顺序相反

    AIX应用软件及服务的启动顺序:

    DB2——〉MQ——〉WAS——〉Socket

    启动Db2: 使用db2用户登陆后输入Db2start

    启动MQ: 输入./startMQ.bat启动MQ服务。

    启动WAS: 用root用户登录系统

    cd /"安装路径"/WebSphere/AppServer/bin

    输入./startServer.sh server1

    启动socket服务: 用root用户登录系统。

    AIX应用软件及服务的停止顺序:

    Socket——〉WAS——〉oracle ——〉MQ

    停止socket服务:

    用root用户登录

    输入ps –ef|grep socket查看socket进程

    输入kill 进程号 杀掉socket进程

    停止WAS服务: 使用root用户登录

    输入cd /"安装路径"/WebSphere/AppServer/bin(回车)

    输入./stopServer.sh server1(回车)

    停止DB2: 使用db2  admin用户登录  输入db2stop(回车)

    停止MQ: 使用root用户登录, 输入./stopMQ.bat(回车)

    aix resource

    http://ftp.software.ibm.com/aix/fixes/52/ml/

    http://www.unix-center.net

    #redhat ssh远程连接ibm aix 机器

    [root@localhost ~]# ssh  -l  siemens800 aix.unix-center.net

    # 查看AIX hosts文件

    [root@localhost ~]# cat /etc/hosts

    192.168.1.18    aix aix.unix-center.net

    192.168.2.3     mysql mysql.unix-center.net

    #ssh 帮助文档

    [avatar@localhost ~]$ ssh
    usage: ssh [-1246AaCfgkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]
               [-D [bind_address:]port] [-e escape_char] [-F configfile]
               [-i identity_file] [-L [bind_address:]port:host:hostport]
               [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
               [-R [bind_address:]port:host:hostport] [-S ctl_path]
               [-w tunnel:tunnel] [user@]hostname [command]

    AIX 专家俱乐部

    http://www.aixchina.net/

    power是risc精简指令集架构,intel是cisc复杂指令集架构。

    unix resources

    Power 在线学堂培训视频

    http://www.aixchina.net/?action-topic-id-4-p-scvideo-section-1.html.html

    常用AIX论坛地址、资料下载地址、FTP地址

    http://aix.chinaunix.net/doc/2007/02/26/1107441.shtml

    AIX论坛:
    http://www.loveunix.net/
    ; 《爱U家园》是大家的快乐空间
    http://www.passcisco.com/bbs/list.asp?boardid=29
    ; AIX使用者论坛
    http://www.chinaunix.net/cgi-bin/bbs/forums.cgi?forum=5
    ; chinaunix的AIX论坛
    http://www.aixchina.com/
    ; AIX中国论坛
    http://www.swg.com.cn/bbs/cgi-bin/leoboard.cgi
    ; 思达奇公司的AIX 技术区
    http://www.itpub.net/forumdisplay.php?s=&forumid=29
    ; itpub的UNIX论坛
    http://www.ibmusers.com/
    ; 银信公司网站
    http://bbs.interconn.com.cn/cgi-bin/forums.cgi?forum=2

    AIX资料下载:
    http://www.redbooks.ibm.com/
    ;
    http://www-1.ibm.com/servers/ese
    ... rary/hardware_docs/
    http://www-900.ibm.com/cn/support/download/r6download.shtml

    http://publib.boulder.ibm.com/pseries/hacmp/hacmp_index.html

    http://www-1.ibm.com/servers/ese
    ... ary/hacmp_docs.html
    http://www.storage.ibm.com/hardsoft/products/ssa/docs/index.html

    http://www.alphaworks.ibm.com/

    http://www.ibm.com/certify
    AIX练习:
    ip:210.5.4.6 port:4003
    user:openuser passwd:openuser
    IBM AIX 和 pSeries信息中心,内容多多:
    http://publib16.boulder.ibm.com/
    ... nter/base/index.htm
    首先感谢这些默默无闻为大家服务的同志!
    ftp://unix2003:unix2003@166.111.121.3/ 推荐
    ftp://chinaunix:unixchina@210.34.8.181/ 推荐
    ftp://chinaunix:chinaunix@61.232.65.242/
    ftp://firer2000:firer2000@211.141.67.2/
    ftp://may:may@cnono.vicp.net/

    # 测试aix pre(web+db2)端口是否开通

    p6550b2/home/wcsuser$telnet 192.168.130.125 80
    正在尝试...
    连接到 192.168.130.125。
    换码字符为 '^]'。

    p6550b2/home/wcsuser$telnet 192.168.121.113 9060
    正在尝试...
    telnet:连接: 远程主机拒绝 connect 操作尝试。

    exit
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>501 Method Not Implemented</title>
    </head><body>
    <h1>Method Not Implemented</h1>
    <p>exit to /index.html not supported.<br />
    </p>
    <hr />
    <address>IBM_HTTP_Server/6.0.2.29 Apache/2.0.47 (Unix) Server at emall.suningsho
    p.com Port 80</address>
    </body></html>
    关闭连接。
    p6550b2/home/wcsuser$telnet 192.168.121.113 80
    正在尝试...
    连接到 192.168.121.113。
    换码字符为 '^]'。
    exit
    HTTP/1.1 400 Bad Request
    Content-Type: text/html
    Date: Fri, 29 Jan 2010 06:29:21 GMT
    Connection: close
    Content-Length: 35

    <h1>Bad Request (Invalid Verb)</h1>关闭连接。

    AIX下怎样根据端口号查找对应的进程

    http://dch1287.iteye.com/blog/799021

    http://jackhe.iteye.com/blog/727998

    AIX下查看那个进程占用80端口的方法(其他端口与此类同

    http://snow8261.iteye.com/blog/952300

    http://luzl.iteye.com/blog/771232

    http://bbs.chinaunix.net/thread-552976-1-1.html

    识别占用端口的程序

    http://eliotlb.iteye.com/blog/1106219

    aix下查看端口被哪个进程占用

    http://jackhe.iteye.com/blog/727998

    近日诊断AIX系统,发现一无名端口,然后跟踪端口查找到了非法的进程,基本操作如下,记录一下,以备查用! 
    1:首先根据端口号 
    netstat -Aan | grep 389 
    返回 
    f1000089c27a2358 tcp4 0 0 *.389 *.* LIST EN 
    2:rmsock f100089c27a2358 tcpcb 
    The socket 0x702f6800 is being held by proccess 4986 (inetd). 
    from: http://www.ixdba.net/article/c3/250.html 
    得到id为4986 
    3:ps -ef |grep 4986 
    即可看到是什么进程。 
    两外可以找个软件:lsof,可以在http://aixpdslib.seas.ucla.edu/packages/lsof.html下载。 
    然后lsof -i:8001即可查看此端口的进程。 

    使用 lsof 查找打开的文件

    http://www.ibm.com/developerworks/cn/aix/library/au-lsof.html

    在 UNIX® 环境中,文件无处不在,这便产生了一句格言:“任何事物都是文件”。通过文件不仅仅可以访问常规数据,通常还可以访问网络连接和硬件。在有些情况下,当您使用 ls 请求目录清单时,将出现相应的条目。在其他情况下,如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字,不存在相应的目录清单。但是在后台为该应用程序分配了一个文件描述符 ,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。

    因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,所以能够查看这个列表将是很有帮助的。完成这项任务的实用程序称为 lsof ,它对应于“list open files”(列出打开的文件)。几乎在每个 UNIX 版本中都有这个实用程序,但奇怪的是,大多数供应商并没有将其包含在操作系统的初始安装中。要获取更多关于 lsof 的信息,请参见参考资料 部分。

    lsof 简介

    只需输入 lsof 就可以生成大量的信息,如清单 1 所示。因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。


    清单 1. lsof 的示例输出

    bash-3.00# lsof 
    COMMAND    PID   USER   FD   TYPE        DEVICE SIZE/OFF      NODE NAME
    sched        0   root  cwd   VDIR         136,8     1024         2 /
    init         1   root  cwd   VDIR         136,8     1024         2 /
    init         1   root  txt   VREG         136,8    49016      1655 /sbin/init
    init         1   root  txt   VREG         136,8    51084      3185 /lib/libuutil.so.1
    vi        2013   root    3u  VREG         136,8        0      8501 /var/tmp/ExXDaO7d
    ...
    

    每行显示一个打开的文件,除非另外指定,否则将显示所有进程打开的所有文件。CommandPIDUser 列分别表示进程的名称、进程标识符 (PID) 和所有者名称。DeviceSIZE/OFFNodeName 列涉及到文件本身的信息,分别表示指定磁盘的名称、文件的大小、索引节点(文件在磁盘上的标识)和该文件的确切名称。根据 UNIX 版本的不同,可能将文件的大小报告为应用程序在文件中进行读取的当前位置(偏移量)。清单 1 来自一台可以报告该信息的 Sun Solaris 10 计算机,而 Linux® 没有这个功能。

    FDType 列的含义最为模糊,它们提供了关于文件如何使用的更多信息。FD 列表示文件描述符,应用程序通过文件描述符识别该文件。Type 列提供了关于文件格式的更多描述。我们来具体研究一下文件描述符列,清单 1 中出现了三种不同的值。cwd 值表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改。txt 类型的文件是程序代码,如应用程序二进制文件本身或共享库,再比如本示例的列表中显示的 init 程序。最后,数值表示应用程序的文件描述符,这是打开该文件时返回的一个整数。在清单 1 输出的最后一行中,您可以看到用户正在使用 vi 编辑 /var/tmp/ExXDaO7d,其文件描述符为 3。u 表示该文件被打开并处于读取/写入模式,而不是只读 (r ) 或只写 (w ) 模式。有一点不是很重要但却很有帮助,初始打开每个应用程序时,都具有三个文件描述符,从 0 到 2,分别表示标准输入、输出和错误流。正因为如此,大多数应用程序所打开的文件的 FD 都是从 3 开始。

    FD 列相比,Type 列则比较直观。根据具体操作系统的不同,您会发现将文件和目录称为 REGDIR (在 Solaris 中,称为 VREGVDIR )。其他可能的取值为 CHRBLK ,分别表示字符和块设备;或者 UNIXFIFOIPv4 ,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。

    转到 /proc 目录

    尽管与使用 lsof 没有什么直接的关系,但对 /proc 目录进行简要的介绍是有必要的。/proc 是一个目录,其中包含了反映内核和进程树的各种文件。这些文件和目录并不存在于磁盘中,因此当您对这些文件进行读取和写入时,实际上是在从操作系统本身获取相关信息。大多数与 lsof 相关的信息都存储于以进程的 PID 命名的目录中,所以 /proc/1234 中包含的是 PID 为 1234 的进程的信息。

    在 /proc 目录的每个进程目录中存在着各种文件,它们可以使得应用程序简单地了解进程的内存空间、文件描述符列表、指向磁盘上的文件的符号链接和其他系统信息。lsof 实用程序使用该信息和其他关于内核内部状态的信息来产生其输出。稍后我将把 lsof 的输出与 /proc 目录中的信息联系起来。

    常见用法

    前面,我向您介绍了如何简单地运行不带任何参数的 lsof ,以便显示关于每个进程所打开的文件的信息。本文余下的部分将重点关注如何使用 lsof 来显示所需的信息以及如何正确地对其进行解释。

    查找应用程序打开的文件

    lsof 常见的用法是查找应用程序打开的文件的名称和数目。您可能想尝试找出某个特定应用程序将日志数据记录到何处,或者正在跟踪某个问题。例如,UNIX 限制了进程能够打开文件的数目。通常这个数值很大,所以不会产生问题,并且在需要时,应用程序可以请求更大的值(直到某个上限)。如果您怀疑应用程序耗尽 了文件描述符,那么可以使用 lsof 统计打开的文件数目,以进行验证。

    要指定单个进程,可以使用 -p 参数,后面加上该进程的 PID。因为这样做不仅会返回该应用程序所打开的文件,还会返回共享库和代码,所以通常需要对输出进行筛选。要完成此任务,可以使用 -d 标志根据 FD 列进行筛选,使用 -a 标志表示两个参数都必须满足 (AND)。如果没有 -a 标志,缺省的情况是显示匹配任何一个参数 (OR) 的文件。清单 2 显示了 sendmail 进程打开的文件,并使用 txt 对这些文件进行筛选。


    清单 2. 带有 PID 筛选器并进行 txt 文件描述符筛选的 lsof 输出

    sh-3.00# lsof -a -p 605 -d ^txt
    COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF     NODE NAME
    sendmail 605 root  cwd   VDIR  136,8     1024    23554 /var/spool/mqueue
    sendmail 605 root    0r  VCHR  13,2            6815752 /devices/pseudo/mm@0:null
    sendmail 605 root    1w  VCHR  13,2            6815752 /devices/pseudo/mm@0:null
    sendmail 605 root    2w  VCHR  13,2            6815752 /devices/pseudo/mm@0:null
    sendmail 605 root    3r  DOOR             0t0       58
    		/var/run/name_service_door(door to nscd[81]) (FA:->0x30002b156c0)
    sendmail 605 root    4w  VCHR  21,0           11010052 
    						/devices/pseudo/log@0:conslog->LOG
    sendmail 605 root    5u  IPv4 0x300010ea640      0t0      TCP *:smtp (LISTEN)
    sendmail 605 root    6u  IPv6 0x3000431c180      0t0      TCP *:smtp (LISTEN)
    sendmail 605 root    7u  IPv4 0x300046d39c0      0t0      TCP *:submission (LISTEN)
    sendmail 605 root    8wW VREG         281,3       32  8778600 /var/run/sendmail.pid
    

    清单 2lsof 指定了三个参数。第一个是 -a ,它表示当所有的参数都为真时,才显示这个文件。第二个参数是 -p 605 ,它限制仅输出 PID 为 605 的进程,可以通过 ps 命令获取这个信息。最后一个参数 -d ^txt ,它表示筛选出其中 txt 类型的记录(脱字符号 [^] 表示排除)。

    清单 2 的输出提供了关于进程行为的信息。如 cwd 行所示,该应用程序的工作目录为 /var/spool/mqueue。文件描述符 0、1 和 2 分配给了 /dev/null(Solaris 大量使用符号链接,所以这里显示了相应的伪设备)。FD 3 是一个 Solaris 门(高速远程过程调用 (RPC) 接口),以只读模式打开。FD 4 中的内容比较有趣,因为它是一个字符设备的只读句柄,实质上是 /dev/log。从这个文件中,您可以收集该应用程序向 UNIX syslog 守护进程进行的记录,所以 /etc/syslog.conf 规定了日志文件的位置。

    作为一个网络应用程序,sendmail 对网络端口进行监听。文件描述符 5、6 和 7 可以告诉您,该应用程序正以 IPv4 和 IPv6 模式监听简单邮件传输协议 (SMTP) 端口,并以 IPv4 模式监听提交端口。最后一个文件描述符是只写的,并且指向 /var/run/sendmail.pid。FD 列中的大写 W 表示该应用程序具有对整个文件的写锁。该文件用于确保每次只能打开一个应用程序实例。

    查找打开某个文件的应用程序

    在其他情况下,您有一个文件或目录,并且需要知道哪个应用程序控制了该文件(打开了该文件)。清单 2 显示了由 sendmail 进程打开了 /var/run/sendmail.pid。如果您不知道这个信息,那么在给定文件名的情况下,lsof 可以提供该信息。清单 3 显示了相应的输出。


    清单 3. 要求 lsof 显示关于某个文件的信息

    bash-3.00# lsof /var/run/sendmail.pid
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
    sendmail 605 root    8wW VREG  281,3       32 8778600 /var/run/sendmail.pid
    

    正如输出所示,进程 sendmail (PID 为 605)控制了文件 /var/run/sendmail.pid,并且通过排它锁打开该文件以便进行写入。如果出于某种原因,您需要删除这个文件,那么正确的做法是中止该进 程,而不是直接删除这个文件。否则,这个守护进程下次可能无法正常启动,或者可能稍后会启动另一个实例,从而导致争用。

    有时您只知道在文件系统的某处打开了文件。在卸载文件系统时,如果该文件系统中有任何打开的文件,那么操作将会失败。通过指定装入点的名称,您可以使用 lsof 显示一个文件系统中所有打开的文件。清单 4 显示了如何尝试卸载 /export/home,然后使用 lsof 找出谁在使用该文件系统。


    清单 4. 使用 lsof 找出谁在使用文件系统

    bash-3.00# umount /export/home
    umount: /export/home busy
    bash-3.00# lsof /export/home
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    bash    1943 root  cwd   VDIR  136,7     1024    4 /export/home/sean
    bash    2970 sean  cwd   VDIR  136,7     1024    4 /export/home/sean
    ct      3030 sean  cwd   VDIR  136,7     1024    4 /export/home/sean
    ct      3030 sean    1w  VREG  136,7        0   25 /export/home/sean/output
    

    在这个示例中,用户 sean 正在其 home 目录中进行一些操作。有两个 bash (一种 Shell)实例正在运行,并且当前目录设置为 sean 的 home 目录。还有一个名为 ct 的应用程序正运行于相同的目录,并且其标准输出(文件描述符 1)重定向到一个名为 output 的文件。要成功地卸载 /export/home,应该在通知用户以确保情况正常之后,中止这些进程。

    这个示例说明了应用程序的当前工作目录非常重要,因为它仍保持着文件资源,并且可以防止文件系统被卸载。这就是为什么大部分守护进程(后台进程)将它们的目录更改为根目录、或服务特定的目录(如 sendmail 示例中的 /var/spool/mqueue)的原因,以避免该守护进程阻止卸载不相关的文件系统。如果 sendmail 从 /export/home/sean 目录启动,并且没有将其目录更改为 /var/spool/mqueue,那么在卸载 /export/home 前必须中止它。

    如果您对非装入点目录中打开的文件感兴趣,那么必须通过 +d+D 指定该目录的名称,具体使用其中的哪一个标志取决于您需要递归到子目录(+D )或者不需要递归到子目录(+d )。例如,要查看 /export/home/sean 中所有打开的文件,可以使用 lsof +D /export/home/sean 。在前面的示例中,相关的目录是一个装入点,而这里与前面的示例存在细微的差别,并且限制了 lsof 和内核之间的交互。这还会引起潜在的问题,即 lsof /export/homelsof /export/home/ (请 注意尾部的斜杠)有所区别。第一种方式可以正常工作,因为它指向了装入点。第二种方式不会生成任何输出,因为它指向了目录。如果您在 Shell 中使用 Tab 键自动完成命令,那么可能碰到这个问题,其中会帮助您添加结尾的斜杠。在这种情况下,您可以删除这个斜杠或者使用 +D 指定目录。前者是首选的方法,因为与指定任意的目录相比,其执行速度更快。

    不常见的用法

    在前面的部分中,我们研究了 lsof 的基本用法,即显示打开的文件和控制它们的进程之间的关系。当您想对系统进行一些烦琐的操作,而又不希望破坏别人重要的文档时,这种方法很有帮助。您还可以使用相同的方法执行一些高难度的 UNIX 操作。

    恢复删除的文件

    当 UNIX 计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志。有时可以恢复这些文件,并且 lsof 可以为您提供帮助。

    当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录条目。

    前面曾在转到 /proc 目录 部分中说过,通过在适当的目录中进行查找,您可以访问进程的文件描述符。在随后的内容中,您看到了 lsof 可以显示进程的文件描述符和相关的文件名。您能明白我的意思吗?

    但愿它真的这么简单!当您向 lsof 传递文件名时,比如在 lsof /file/I/deleted 中,它首先使用 stat() 系统调用获得有关该文件的信息,不幸的是,这个文件已经被删除。在不同的操作系统中,lsof 可能可以从核心内存中捕获该文件的名称。清单 5 显示了一个 Linux 系统,其中意外地删除了 Apache 日志,我正使用 grep 工具查找是否有人打开了该文件。


    清单 5. 在 Linux 中使用 lsof 查找删除的文件

    # lsof | grep error_log
    httpd      2452     root    2w      REG       33,2      499    3090660
    					/var/log/httpd/error_log (deleted)
    httpd      2452     root    7w      REG       33,2      499    3090660
    					/var/log/httpd/error_log (deleted)
    ... more httpd processes ...
    

    在这个示例中,您可以看到 PID 2452 打开文件的文件描述符为 2(标准错误)和 7。因此,可以在 /proc/2452/fd/7 中查看相应的信息,如清单 6 所示。


    清单 6. 通过 /proc 查找删除的文件

    # cat /proc/2452/fd/7
    [Sun Apr 30 04:02:48 2006] [notice] Digest: generating secret for digest authentication
    [Sun Apr 30 04:02:48 2006] [notice] Digest: done
    [Sun Apr 30 04:02:48 2006] [notice] LDAP: Built with OpenLDAP LDAP SDK
    

    Linux 的优点在于,它保存了文件的名称,甚至可以告诉我们它已经被删除。在遭到破坏的系统中查找相关内容时,这是非常有用的内容,因为攻击者通常会删除日志以隐藏他们的踪迹。Solaris 并不提供这些信息。然而,我们知道 httpd 守护进程使用了 error_log 文件,所以可以使用 ps 命令找到这个 PID,然后可以查看这个守护进程打开的所有文件。


    清单 7. 在 Solaris 中查找删除的文件

    # lsof -a -p 8663 -d ^txt
    COMMAND  PID   USER   FD   TYPE        DEVICE SIZE/OFF    NODE NAME
    httpd   8663 nobody  cwd   VDIR         136,8     1024       2 /
    httpd   8663 nobody    0r  VCHR          13,2          6815752 /devices/pseudo/mm@0:null
    httpd   8663 nobody    1w  VCHR          13,2          6815752 /devices/pseudo/mm@0:null
    httpd   8663 nobody    2w  VREG         136,8      185  145465 / (/dev/dsk/c0t0d0s0)
    httpd   8663 nobody    4r  DOOR                    0t0      58 /var/run/name_service_door
    						(door to nscd[81]) (FA:->0x30002b156c0)
    httpd   8663 nobody   15w  VREG         136,8      185  145465 / (/dev/dsk/c0t0d0s0)
    httpd   8663 nobody   16u  IPv4 0x300046d27c0      0t0     TCP *:80 (LISTEN)
    httpd   8663 nobody   17w  VREG         136,8        0  145466 
                                                              /var/apache/logs/access_log
    httpd   8663 nobody   18w  VREG         281,3        0 9518013 /var/run (swap)
    

    我使用 -a-d 参数对输出进行筛选,以排除代码程序段,因为我知道需要查找的是哪些文件。Name 列显示出,其中的两个文件(FD 2 和 15)使用磁盘名代替了文件名,并且它们的类型为 VREG (常规文件)。在 Solaris 中,删除的文件将显示文件所在的磁盘的名称。通过这个线索,就可以知道该 FD 指向一个删除的文件。实际上,查看 /proc/8663/fd/15 就可以得到所要查找的数据。

    如果可以通过文件描述符查看相应的数据,那么您就可以使用 I/O 重定向将其复制到文件中,如 cat /proc/8663/fd/15 > /tmp/error_log 。此时,您可以中止该守护进程(这将删除 FD,从而删除相应的文件),将这个临时文件复制到所需的位置,然后重新启动该守护进程。

    对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用。正如您所看到的,有些操作系统(以及不同版本的 lsof )比其他的系统更容易查找相应的数据。

    查找网络连接

    网络连接也是文件,这意味着可以使用 lsof 获得关于它们的信息。您曾在清单 2 中看到过这样的示例。该示例假设您已经知道 PID,但是有时候并非如此。如果您只知道相应的端口,那么可以使用 -i 参数利用套接字信息进行搜索。清单 8 显示了对 TCP 端口 25 的搜索。


    清单 8. 查找监听端口 25 的进程

    # lsof -i :25
    COMMAND  PID USER   FD   TYPE        DEVICE SIZE/OFF NODE NAME
    sendmail 605 root    5u  IPv4 0x300010ea640      0t0  TCP *:smtp (LISTEN)
    sendmail 605 root    6u  IPv6 0x3000431c180      0t0  TCP *:smtp (LISTEN)
    

    需要以 protocol:@ip:port 的形式向 lsof 实用程序传递相关信息,其中的 protocol 为 TCP 或 UDP(可以使用 4 或 6 作为前缀,表示 IP 的版本),IP 为可解析的名称或 IP 地址,而 port 为数字或表示该服务的名称(来自 /etc/services)。需要一个或多个元素(端口、IP、协议)。在清单 8 中,:25 表示端口 25。输出显示,进程 605 正在使用 IPv6 和 IPv4 监听端口 25。如果您对 IPv4 不感兴趣,那么可以将筛选器改为 6:25 ,以表示监听端口 25 的 IPv6 套接字,或者直接使用 6 表示所有的 IPv6 连接。

    除了显示出这些守护进程正在监听的对象,lsof 还可以发现发生的连接,同样是使用 -i 参数。清单 9 显示了搜索与 192.168.1.10 之间的所有连接。


    清单 9. 搜索活动的连接

    # lsof -i @192.168.1.10
    COMMAND  PID USER   FD   TYPE        DEVICE  SIZE/OFF NODE NAME
    sshd    1934 root    6u  IPv6 0x300046d21c0 0t1303608  TCP sun:ssh->linux:40379
    							 (ESTABLISHED)
    sshd    1937 root    4u  IPv6 0x300046d21c0 0t1303608  TCP sun:ssh->linux:40379
    							 (ESTABLISHED)
    

    在这个示例中,sunlinux 之间有两个 IPv6 连接。对其进行更仔细的研究可以看出,这些连接来自于两个不同的进程,但它们却是相同的,这是因为两台主机是相同的,并且端口也是相同的(ssh 和 40379)。这是由于进入主进程的连接分叉出一个处理程序,并将该套接字传递给它。您还可以看到,名为 sun 的计算机正在使用端口 22 (ssh),而 linux 具有端口 40379。这表示,sun 是该连接的接收者,因为它关联于该服务的已知端口。40379 是源或临时端口,并且仅对这个连接有意义。

    因为,至少在 UNIX 中,套接字是另一类文件,所以 lsof 可以获得关于这些连接的详细信息,并找出谁对它们负责。

    结束语

    UNIX 大量使用了文件。作为系统管理员,lsof 允许您对核心内存进行查看,以找出系统当前如何使用这些文件。lsof 最简单的用法可以告诉您哪些进程打开了哪些文件,以及哪些文件由哪些进程打开。在收集关于应用程序工作情况的信息时,或在进行某些可能损坏数据的操作前确保文件未被使用时,这一点特别重要lsof 更高级的用法可以帮助您查找删除的文件,并获得关于网络连接的信息。这是一个功能强大的工具,它几乎可以用于任何地方。

    aix系统用rmsock查询端口对应的进程

    http://space.itpub.net/3326/viewspace-605868

    在做一些故障分析的时候,经常需要通过一些网络端口信息提取相关进程信息,方法就是

        netstat -Aan |grep 1521

        rmsock f1000d0005b4b390 tcpcb

    注:

    rmsock  命令

    用途

    除去不包含文件描述符的套接字。

    语法

    rmsock  Address  TypeofAddress

    描述

    rmsock  命令除去不包含文件描述符的套接字。 它接受 socket、tcpcb、inpcb、ripcb 或 rawcb 地址并将其转换成套接字地址。 然后检查每个进程所有打开的文件以查找套接字的匹配。 如果没找到匹配,对该套接字执行异常终止操作,而不考虑套接字 linger  选项的存在。套接字保留的端口号释放。如果发现匹配,文件描述符和主进程状态显示给用户。结果发送到 syslogd  并在 /var/adm/rmsock .log  文件中记录。

    <netstat命令查看端口被谁占用>

    http://william750214.iteye.com/blog/504931

    Windows:

           C:> netstat -ano

    可以查出pid  

    AIX:

        #netstat –Aan | grep 8083

       # rmsock f100060000484b98 tcpcb

    Linux:

       #netstat -anp | grep 8083

       # ps -ef | grep pid

    IBM AIX系统检查

    C:\Documents and Settings\Lindows>telnet 192.168.130.115

    AIX Version 5
    Copyright IBM Corporation, 1982, 2008.
    login: root
    root's Password:
    *******************************************************************************
    *                                                                             *
    *                                                                             *
    *  Welcome to AIX Version 5.3!                                                *
    *                                                                             *
    *                                                                             *
    *  Please see the README file in /usr/lpp/bos for information pertinent to    *
    *  this release of the AIX Operating System.                                  *
    *                                                                             *
    *                                                                             *
    *******************************************************************************
    Last unsuccessful login: 公元2009年09月28日  星期一  10时25分37秒 on /dev/vty0
    Last login: 公元2009年09月28日  星期一  16时15分46秒 on ftp from ::ffff:172.17.25.108

    Ecsvr3/#ls
    .TTauthority      .wmrc             home              sbin              unix
    .Xauthority       TT_DB             lib               smit.log          usr
    .dt               audit             lost+found        smit.script       var
    .dtprofile        bin               lpp               smit.transaction
    .profile          dev               mnt               tftpboot
    .sh_history       esa               opt               tmp
    .vi_history       etc               proc              u

    查看 shell:

    http://bbs.chinaunix.net/viewthread.php?tid=768546
    ①输入一个系统不认识的命令(如#ig)获得系统提示  
    ②#echo $0 (适用:sh/ksh)
    ③#ps |grep $$|awk ‘{print $4}’
    ④#echo $SHELL(用户默认的Shell,但不实时反映当前shell)
    查看 sell版本

    http://wenda.tianya.cn/wenda/thread?tid=13720a3cec4a589a&clk=wttpcts

    sh -version
    如果用户登录之后 UNIX显示提示 符为$,那么所使用的是B Shell。若显示为%提示符,则为 C Shell

    AIX设置查看 语言包相关命令

    http://hi.baidu.com/wa0362/blog/item/d57e17d6f6ffd52706088b1b.html

    查看 已经安装的 AIX语言 包:

    #   locale   -a

    C

    POSIX

    ZH_CN

    ZH_CN.UTF-8

    en_US

    en_US.8859-15

    en_US.ISO8859-1

    zh_CN

    zh_CN.IBM-eucCN

    查看 当前 AIX语言 设置:

    #   locale

    LANG=zh_CN

    LC_COLLATE= "zh_CN "

    LC_CTYPE= "zh_CN "

    LC_MONETARY= "zh_CN "

    LC_NUMERIC= "zh_CN "

    LC_TIME= "zh_CN "

    LC_MESSAGES=zh_CN

    LC_ALL=zh_CN

    修改AIX语言设置:

    #   export   LC_ALL=ZH_CN.UTF-8

    查看 修改后的AIX语言设置:

    #   locale

    LANG=zh_CN

    LC_COLLATE= "ZH_CN.UTF-8 "

    LC_CTYPE= "ZH_CN.UTF-8 "

    LC_MONETARY= "ZH_CN.UTF-8 "

    LC_NUMERIC= "ZH_CN.UTF-8 "

    LC_TIME= "ZH_CN.UTF-8 "

    LC_MESSAGES= "ZH_CN.UTF-8 "

    LC_ALL=ZH_CN.UTF-8

    AIX 上安装语言包

    1. AIX 系统盘的第一张光盘放入光驱;

    2. 运行命令:

    smitty

    --> System Environments

    --> Manage Languange Environment

    --> Add Addinational Languange Environments

    在随后显示的菜单中将光标分别移到以下字段,按 F4 进行选择(选择 .... (zh_CN) 相应语言 )

    CULTURAL Convention to Install

    LANGUAGE translation to install

    在光驱中放入介质,回车就可以了。

    查看 AIX系统CPU个数

    Ecsvr3[/]#prtconf|grep "Number Of Processors"
    Number Of Processors: 16

    查看 AIX系统的物理机CPU个数和 CPU频率

    Ecsvr3[/]#pmcycles -m
    CPU 0 runs at 1656 MHz
    CPU 1 runs at 1656 MHz
    CPU 2 runs at 1656 MHz

    、、、
    CPU 31 runs at 1656 MHz

    查看 AIX系统CPU 内核总数

    Ecsvr3[/]#bindprocessor -q
    The available processors are:  0 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

    查看 AIX系统CPU内核总数

    Ecsvr3[/]#lsdev -C|grep proc
    proc0      Available 00-00         Processor
    proc2      Available 00-02         Processor

    proc4      Available 00-04         Processor

    、、、
    proc30     Available 00-30         Processor

    查看 AIX系统CPU 内核总数

    Ecsvr3[/]#vmstat
    System Configuration: lcpu=32 mem=37888MB
    kthr    memory              page              faults        cpu   
    ----- ----------- ------------------------ ------------ -----------
     r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
     1  1 940803 7788445   0   0   0   0    0   0 127 4936 695  1  0 99  0

    查看 AIX系统CPU内核芯片 /频率frequency PowerPC_POWER5 小型机

    语法:Ecsvr3[/]#lsattr  -El proc0|1|2|....

    Ecsvr3[/]#lsattr  -El proc0
    frequency   1656400000     Processor Speed       False
    smt_enabled true           Processor SMT enabled False
    smt_threads 2              Processor SMT threads False
    state       enable         Processor state       False
    type        PowerPC_POWER5 Processor type        False

    查看 AIX系统CPU位数

    Ecsvr3/#bootinfo -K

    64

    系统硬件检查

    #磁盘空间检查

    Ecsvr3/#df -g

    #显示CPU数量

    [root@localhost /]# lsdev -C | grep -i processor|wc -l

    #显示内存数量

    [root@localhost /]# root>lsdev -C |grep mem

    有关AIX版本4及版本5上的内存泄漏问题

    http://www.aixchina.net/club/viewthread.php?tid=8463

    #查看 路由表

    [root@localhost /]# netstat -rn

    Ecsvr3/#netstat -rn
    路由表
    Destination        Gateway           Flags   Refs     Use  If   Exp  Groups
    协议系列 2 的路由树 (Internet):
    default            192.168.130.254   UGS       3      8297 en0      -      -
    127/8              127.0.0.1         U        11       295 lo0      -      -
    192.168.130.0      192.168.130.115   UHSb      0         0 en0      -      -   =>
    192.168.130/24     192.168.130.115   U         1         1 en0      -      -
    192.168.130.115    127.0.0.1         UGHS      0      2564 lo0      -      -
    192.168.130.255    192.168.130.115   UHSb      0         4 en0      -      -
    协议系列 24 的路由树 (Internet v6):
    ::1                ::1               UH        0         0 lo0      -      -

    #查看 启动顺序
    Ecsvr3/#bootlist -m normal -o
    hdisk0 blv=hd5
    hdisk1 blv=hd5

    #开启异步I/O
    smit devices ---- Asycchronus I/O  ---avaiable

    #查看 系统文件类型
    smit fs

    #查看AIX文件或文件夹大小 

    《AIX 5L V5.2 命令参考大全》 (共 6 卷)的第 2 卷 ,du 命令

    http://www.kuqin.com/aixcmds/aixcmds2/du.htm

    http://linux.chinaunix.net/bbs/viewthread.php?tid=313251

    --查看当前文件夹所有文件大小 --KB显示

    p6550b2/usr/IBMIHS/WCSIHS/httplogs# du -sk

    p6550b2/usr/IBMIHS/WCSIHS/httplogs# du -sk .

    --查看当前文件夹所有文件大小 --MB显示

    p6550b2/usr/IBMIHS/WCSIHS/httplogs# du -sm .

    --查看当前文件夹所有文件大小 --GB显示

    p6550b2/usr/IBMIHS/WCSIHS/httplogs# du -sg .

    --查看httpdlogs文件夹大小 --GB显示

    p6550b2/usr/IBMIHS/WCSIHS/# du -sg httplogs

    --查看usr文件夹大小(需要root帐户 )

    p6550b2[/usr]#du -sg /usr
    37.53   /usr

    #db2 path check
    insfix -v -i -k IY67744
    insfix -v -i -k IY58143
    insfix -v -i -k IY68998 ?

    #mount
    1先在主机源上指定
     mknfsexp -d /p55_g -c Ecsver3 -t -rw
     mknfsexp -d /源主机 -c 目标主机 -t -rw
    2在目标主机指向
     mount p55_g:/install /install
      mount /源主机目录   /目标主机目录

    #准备安装db2

    ./db2setup id:wcsdbins

    #删除文件
    rm -ef

    Ecsvr3/#uname -Mu
    IBM,9133-55A IBM,0306A652H

    #显示每一个CPU的频率
    #pmcycles -m

    #查看 物理内存
    #bootinfo -r

    #查看 内存
    Ecsvr3/#lsdev -Cc memory
    L2cache0 可用  二级高速缓存
    mem0     可用  内存

    1.35
    创建组wcs
    smit group
    创建用户wcsuser
    smit user

    mount(挂载)命令详解

    http://code.iteye.com/blog/416922

    AIX 和 Linux 基于 NFS 实现共享

    http://www.blogjava.net/flyingis/archive/2007/09/12/144492.html

    IBM-AIX 系统常用命令

    http://darkmasky.iteye.com/blog/224936

    http://www.blogjava.net/luckyrobbie/archive/2006/03/27/37543.html

    aix的系统备份命令是mksysb, make system backup ,有点类似 ghost.

    aix5.3 支持微分区技术,所谓微分区就是1台机器上装多个OS(操作系统),把这台机器上的cpu资源进行划分,然后分配给每一个os使用,最小粒度是0.1个 cpu.有点类似vmware软件.让一个机器跑多个操作系统.这项技术早在ibm的大机上就已经实现了.只不过最近才在小机和pc机器上发布.

    TIVOLI是系统管理软件.

    关闭aix的命令:shutdown ->正常关机,关闭所有服务. halt -> 相当于直接关闭电源.
    重启aix:shutdown -Fr

    查看 出错信息:errpt errpt -a | more -> 分页显示 errpt -a > /tmp/err01 输出到文件.
    清除错误信息:errclear 0

    smit 用鼠标操作 smitty 用键盘来操作,一般用smitty为好.

    ping -f 全速ping ,利用所有的服务器资源来ping,如果是多个服务器ping一个ip,可以把机器ping死.

    几个关于磁盘的名词:
    lv: logical volume 逻辑卷
    pv: physical volume 物理卷
    vg: volume group 卷组
    pp: physical partition 物理分区
    lp: logical partition 逻辑分区

    pv对应的是物理硬盘或者是磁盘阵列上划分的lun,一个vg最多可以有1016个pp.
    pv的上面是vg,一个vg可以包含多个pv.
    vg的上面是lv,lv如果不作任何处理就是裸设备,也可以作成文件系统.
    lv被分为多个lp,默认情况下,lp与pp是一一对应的,也可以做成一对多的.这样就相当于用多个pp来作raid0备份.

    lsdev -C | grep disk 可以查看 物理磁盘的硬件信息
    lspv 查看 pv的信息 -p hdisk0 查看 具体数据存放的位置:例如,数据在第m到n个pp上面.
    lsvg 查看 vg的信息 -l vg的列表 -c 被使用的vg -l rootvg 查看 rootvg的详情.
    lslv -m lv1 查看 lv1 的lp与pp的映射.
    getlvcv -AT lv1 看到lv1的控制信息.
    fsck -y /dev/newlv 检查lv.

    smit vg 可以管理vg
    smit lv 管理lv

    varryonvg rootvg 激活rootvg卷组,varryoffvg newvg 使newvg卷组脱机.

    nbpi:number of bytes per inode 每个i节点拥有的字节数,这个参数越小,文件系统的可用的inode越多.如果inode用完,即使有剩余空间,系统也会报空间不够.此时要调小nbpi的值.一般是4k
    df -k 中iused 指的是i节点的使用情况.

    设置从cd启动,bootlist -m normal cd0

    启动时按ESC+1或者F1,可以进入启动菜单.选择启动方式.

    用smitty crfs 创建完文件系统以后还要mount.
    /etc/filesystems 文件记录文件系统的信息.如想把某个lv映射到不同的文件系统路径上面,可以直接修改这个文件.

    用logform /dev/testloglv 将lv格式化成jfs的log的格式.

    file 文件名 可以看某个文件的信息,包括文件类型,可执行文件,文本文件,等等.

    uname -a 可以看到os的信息.

    fsck 检查文件系统的信息,在umount的时候是准确的, 相当于windows的磁盘扫描.

    碎片整理 smitty jfs

    lsfs /root 显示文件系统的属性

    各个组件的关系:

    lsps -a 查看 page space的使用情况

    vgda:vg description area 每个vg的头部存放vg的描述信息,
    如果包含2个pv,那么第一个pv会在头部和另一个位置存放2个vgda,第2个pv也会存放一个.
    如果包含3个pv,那么每个pv上都有1个vgda.
    vg的信息在odm中也会存储,但必须和vgda中的信息一致,否则无法varryonvg,有下面4个命令来管理odm中的vg信息.
    importvg:从vgda中读取信息到odm中
    exportvg:从odm中删除vg信息
    varryonvg:激活(online)vg
    varryoffvg:卸载(offline)vg

    修 改vg的factor,这样可以将vg的max pp 从默认的1016 增大1倍,到2032,但由于vgda的总大小不变,这些信息都是记录到里面的.所以vg的最大文件数要减小1倍,实际上是个等式:max pp * max file = 固定的一个值,factor增大,实际上是max pp * factor,max file / factor.具体做法:chvg -t 2 rootvg 修改factor为2.vgda

    用cfgmgr,来刷新,来认出新assign的hdisk.
    cfgmgr -v 检查新设备,新硬件.
    -i /dev/cd0 从光盘自动安装新硬件驱动.

    当作双机时,2个服务器server1 和 server2 来连接同一个盘阵,server1对磁盘分配一个pvid,当第一次切换到server2时,要用ckdev命令来读出server1配置的pvid.系统是通过pvid来识别pv的.
    ckdev -l hdisk1 -a pv = clear 清除pvid
    ckdev -l hdisk1 -a pv = yes 新置pvid

    lsdev 查看 物理设备
    lsdev -C 显示所有设备状态
    rmdev -l cd0 逻辑删除 cd0
    mkdev -l cd0 安装cd0
    rmdev -d -l cd0 删除cd0设备驱动

    lscfg -vp | more 分页看全部硬件信息
    prtconf | more 列出硬件信息

    telnet的登陆信息存放在/etc/motd文件中.
    查看 最近有谁登陆,用last命令.
    查看 登录失败的信息: /etc/security/failedlogin
    存放用户密码的文件:/etc/security/passwd

    用户登录需要运行的脚本:
    1 /etc/profile
    2 /etc/environment 在这个文件中设置中文环境,LANG=zh_CN
    3 用户profile ,分2种情况:
    如果是命令行登录,则运行/home/user/.profile
    如果是图形登录,则运行 /home/user/.dtprofile 需要将次文件中,#DTSOURCEPROFILE=TRUE 的# 去掉,否则还是使用.profile.

    在/dev下面有2种设备,一种是block设备,一种是char(字符)设备.这取决于不同的应用.

    vmstat的某些行的解释:
    vmstat->faults->cs: user calls 用户调用的次数
    cpu->wa: >40 说明io繁忙
    kthr: kernel thread
    kthr->r 在运行队列中等待执行的进程
    b 正在等待io的进程
    memory->avm:active vitual memory 物理内存+使用的虚拟内存,以4k为单位.
    page->re:是pin 和 pout 的总和.
    sr:search的内存块数.
    fr:释放的内存块数.
    每次作page out时,系统要搜索物理内存以找到可以释放的块,sr和fr分别代表搜索的和通过搜索找到的可以释放的块 数.如果2者很接近,说明内存中有很多用于file cache,内存的数量是够用的.如果fr/sr的值很小,说明内存不够.

    tty:代表终端

    iostat:
    %tm_act 实际transaction的百分比
    tps 每秒发生的次数
    kbps 每秒的速率
    名词:thrasing: 应用程序频繁交换,导致paging过多.

    /usr/samples/kernel/vmtune -f 120 -F 128
    -f 120 代表minfree mem < 120 时要进行page out
    -F 128 代表maxfree mem > 128 时要进行page in
    -p -P 也跟page out 有关,具体不清楚,还需明确.

    sar->avque:平均的请求数

    对文件系统作监视:filemon
    filemon -o /tmp/a.txt -O all -v
    运行之后系统会一直监视文件系统的使用情况并记录日志,-T 64000 是使用的buffer cache,在大型系统上,这个值可以调大.
    运行一段时间后,要停掉filemon,使用trcstop 或者 kill -9 进程.
    从a.txt中可以看到使用最频繁的文件等信息,有些类似statspack的报告.

    对于后缀是Z的文件用uncompress来解压缩. uncompress a.tar.Z

    用strings 命令来看2进制文件

    如何调大page space,直接设置对应lv的大小.如果对应lv的vg空间不够的话,可以向vg中加硬盘.

    dd的用法:dd if=/dev/rnewfs of=/dev/rcopyfs bs=1024 count=10240
    bs: block size 块大小,1024字节
    count: block count 块的数量
    if是input file ,of 是output file

    将任务切换到后台执行: ctrl+z ,然后 bg+回车
    查看 后台执行的程序:jobs
    把后台执行的程序切换到前台执行:fg %n n是后台的job 编号

    ip抓包工具:iptrace 和 tcpdump
    iptrace -a a.out
    停止iptrace:kill -9
    tcpdump -i en1 -w a.out a.out 是输出文件

    把进程与cpu绑定:bindprocessor -U 进程号 cpuid
    bindprocessor -U 12345 0

    odm库:
    env | grep obj
    ODMDIR=/etc/objrepos 这是odm库的存储路径

    在disk0上生成引导区
    bosboot -a -d /dev/hdisk0

    用kdb 查看 os 的 dump

    ethernet channel 把2个网卡绑定到1个ip,可以作网络负载均衡.

    crontab 设置定时任务
    crontab -l list the crontab
    crontab -e edit the crontab
    crontab的格式:分钟 小时 月中的天数 月份 星期 命令
    minute:
    0 到 59
    hour:
    0 到 23
    day_of_month:
    1 到 31
    month:
    1 到 12
    weekday:
    星期日到星期六的 0 到 6 时
    要在每星期日上午 2 时运行 fwlogmgmt 命令,请将下列各行添加至 crontab 文件底部:
    0 2 * * 0 /usr/bin/fwlogmgmt -1

    发送邮件,aix和redhad linux 都默认安装了smtp邮件服务,可以直接给internet发邮件.
    mail -s "test mail"
    haochunpeng@ninetowns.com < $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert$ORACLE_SID.log
    mail -s "test mail"
    haochunpeng@ninetowns.com <<EOF
    ******** MAIL CONTENT *******
    FJLADSFJLAKHFGAL
    FJALDSKFJA
    FASLJFLASF
    *****************************
    EOF
    有了crontab和mail,就可以定时监控数据库,然后把报告发送邮件到管理员的信箱.

    kill -9 9 是kill命令传送的一个信号,一共15个信号可以发送.

    /etc/ftpusers 限制登录ftp的用户,谁在这个文件里面,谁就登不进去.

    网络服务 /etc/inetd.conf 刷新 refresh src -d

    lslpp -l | grep http 查看 安装的软件

    检查瓶颈:
    利用vmstat iostat 查看 总体情况,ps aux 可以看到具体进程占用资源的情况.
    如果是io瓶颈,可以利用filemon -o /tmp/a.txt -O all; sleep 10;trcstop 来查看 io资源的使用情况.

    辨别僵尸进程:ps -ef pid 那列是 defunc的为僵尸进程.

    几个不错的aix网站:
    http://www.douzhe.com
    http://www.xfocus.net/articles/200208/433.html

     

    http://coldmail.blog.51cto.com/37442/125932

    申请个AS400账户用于学习!

    http://coldmail.blog.51cto.com/37442/125930

    大家好,今天给大家推荐一个地址,可以申请一个免费账户,用于学习AS400账户。
     
    默认是德文的页面,左面有个语言选项,点击那个英国国旗,就变成英文了,然后后面有个CLICK HERE,进入后填写相关的信息就可以申请到账户了!
     
     
    大家有什么问题,可以给我留言!我们互相学习!

    本文出自 “点滴成就非凡 ” 博客,请务必保留此出处http://coldmail.blog.51cto.com/37442/125930

    AS/400   技 术 手 册

    http://man.chinaunix.net/unix/IBM/as400/index.htm

    Some Useful AS/400 Integration Utilities

    http://www.datamission.co.uk/AS400_Utilities1.html

    IBM的AS/400服务器

    http://feigme.iteye.com/blog/97188

    -------------------------------------------------------------------------------------
    -------------------------------------------------------------------------------------
    -------------------------------------------------------------------------------------
    http://www.aixchina.net/

    AIX 5L 学习大纲/简易教程(1)
    http://blog.csdn.net/johnsuna/archive/2006/02/13/597709.aspx

    Unix Aix Command

    http://dl.iteye.com/topics/download/7dcc5a9c-8bb6-3662-baf0-386e6dda2801

    https://docs.google.com/fileview?id=0B648RQNFLDr8NDVlYTkwMGMtZmEzNS00Zjk0LTlhZjQtNzdhY2RjZjg1N2E3&hl=zh_CN

     
    end

    end

  • 相关阅读:
    关于Tomcat的那些事儿(一)
    关于Spring的问题(一)
    关于Spring的@RequestBody的使用
    关于Eclipse切换所有分支
    关于使用BetterIntelliJ激活IntelliJ IDEA
    关于Elasticsearch的问题(一)
    关于Elasticsearch那些事
    关于LRU算法及Java实现
    自定义滚动条
    创建型模式之建造者模式
  • 原文地址:https://www.cnblogs.com/lindows/p/14390592.html
Copyright © 2011-2022 走看看