免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 17972 | 回复: 23
打印 上一主题 下一主题

[故障求助] 191学习笔记(全)--要求加精 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-15 23:04 |只看该作者 |倒序浏览
191学习笔记
Chap 2 处理系统启动问题
本章目标:
1、        理解系统启动的基本过程并且能够正常的关闭系统
2、        进入Aix错误日志
3、        解决启动问题
4、        记住并能理解基本的LED上的错误代码
2.1本章的主要命令
alog,cfgmgr,last,bootlist,uptime,mpcfg,shutdown
2.2启动过程
1、启动的前提条件:必须有一个boot image可以加载,同时要能够进入/和/usr文件系统。(如果/tmp,/var不能进入呢?)
2、启动的三种形式
a、        硬盘启动
b、        无盘工作站启动(通过网络上的其它远程机器提供的启动文件)
c、        服务模式(也叫维护模式,key设置在service位置上,或是PCI架构通过按F5来进入维护模式)
3、机器启动的三个阶段
a、        只读存储内核初始化阶段(Read only storage kernel init phase),在这一阶段,主板被检查,ROS初始化程序加载时寻找bootlist,一旦找到启动设备,boot image读入内存并开始系统初始化。
b、        基本设备配置阶段,所有的设备在这一阶段被配置,通过cfgmgr命令
c、        系统启动阶段,在这一阶段,所有的lv激活,交换换页开始,并且init开始读取并执行/etc/inittab里的程序。
2.3加电顺序,LED显示和声音提示
在启动过程中要注意LED上代码的变化,它可以提示系统处于哪一个启动阶段。
同时要注意嘀声提示,在设备logo展示完后,如果这时系统ROS没有被破坏,又会出现一次嘀声提示,这时可以选择按F1或F5,如果没有任何选择,这时开始调用bootlist来搜索启动设备。
2.4有用的命令
2.4.1 alog命令
可以使用alog命令来查找启动过程的产生的问题,它维护和管理启动日志,位于/var/adm/ras/bootlog,由于启动日志是固定大小的,所以它循环使用。在启动时,rc.boot启动脚本调用了alog并把启动日志记录到bootlog中去。alog配置数据库中又四种日志:boot,bosinst,nim,dumpsymp。
1、查看日志内容
alog –f LogFile [-o]
2、记录数据到一个指定的日志文件中
alog –f LofFile | [ [ -q] [ -s Szie] ]
3、显示某一日志类型的冗长值
alog –L LogType –V
4、改变某一日志类型的属性值
5、        显示当前某一日志类型的属性
alog –L [-t LogType ]
实际应用:
#alog –L
#alog –o –t boot
记在,由于bootlog没有协同机制的控制,所有如果又多个进程要同时写该日志时,可能记录上会有错误。
2.4.2cfgmgr命令
1、语法:cfgmgr [-f | -s | -p Phase ] [ -I Device ] [ -l Name ] [-v]
-f:指定运行第一阶段配置规则,只有在boot是使用,在系统启动后,是不能使用这一选项的。
-i Device:指定安装介质的位置
-l Nmae:指定设备名
-p Phase:指定阶段
-s: 指定cfgmgr执行第二阶段的配置规则
-v:输出显示信息
(结合3.2来学习)
2、设备配置是受Configuration Rules object class控制的,每条配置规则指定以下三项:要执行程序的全路径,(相对于其它规则)什么时候执行该程序,在什么阶段执行。
3、在系统启动时,cfgmgr分为两个阶段,第一阶段带有-f参数,第二阶段带-s参数。
4、cfgmgr识别三阶段配置规则:其中阶段2是:second boot phase for normal boot,阶段三是:second boot phase for service boot。阶段1是在系统启动时自动运行的,要运行阶段2,可以使用cfgmgr,cfgmgr –s,或cfgmgr –p 2等命令。而要运行阶段3,只能用cfgmgr –p 3命令。
5、可以指定-i参数来使识别设备时自动安装该设备所需软件。
注意:为了包含配置数据库的完整性,在运行cfgmgr时不要轻易使用中断。
6、        一般在系统运行状态下使用cfgmgr –v来加配新加的设备
2.4.3使用last命令
但用户登录或退出系统时,都会在/var/adm/wtmp文件中记录,除非他们被acctcon1和acctcon2命令生成每日报告。last命令就是读取该文件。
如果碰到系统时间改变,该文件记录会有两个记录时间,以保证登录时间跨度的准确性。
语法:last [-f FileNmae ] [- Number ] [ Name…] [Terminal …]
其中,Name是登录用户名,Terminal是登录的终端名。
#last root console
#last shutdown    可以查看系统shutdown的时间
2.4.4bootlist命令
有效的boot设备:fdxx, hdiskxx, cdxx,rmtxx,entxx,tokxxx。
2.4.5uptime命令
显示系统启动了多长时间。后面的负载数字是指可运行的处理器在过去5,10,15分钟的平均负载。
2.4.6mpcfg命令
该命令使用在老式的Micro Channel架构的机器上。
该命令是用户可以有root的权限去管理服务信息,包括服务支持和诊断工具。
1、为了显示服务信息
#mpcfg –d { -f –m –p –s}
2、改变服务信息
#mpcfg –c { -f |-m | -p –s –w } Index Value
3、保持或恢复服务信息
#mpcfg { -r | -s }
2.4.7使用shutdown命令
1、参数
-h和-v参数一样:关闭该系统。
-F:尽快关闭系统
-i:指定交换模式
2、可以添加应用程序的关闭到shutdown的程序中
但shutdown命令发起时,它会检查/etc/rc.shutdown文件,所有可以把关闭应用程序写入该文件。
2.5解决启动中问题
2.5.1进入一个没有(不能)启动的系统
2.5.2安装介质的问题
2.5.3LED上显示的启动时的错误代码
1、201:破坏的boot image
2、223-229:无效的引导顺序
3、551,555,557:受破坏的文件系统或文件系统日志
4、552,554,556:超级快或定制的ODM库受破坏
5、553:受破坏的/etc/inittab文件

Chap 3 硬件
3.1列出硬件设备
使用lsdev,lspv,lsattr三个命令
3.2使用lspv命令
该命令显示设备配置在ODM库中的信息,使用-C和-P参数。
1、列出在预定义ODM库中的设备
#lsdev –P –H
其中-H是限制列输出的头(headers above the column output)
2、列出在已定制ODM库中的设备
#lsdev –C -H  
3、列出可用设备
#lsdev –C –c adapter –S a
其中-S是指定设备状态
4、列出支持的设备
#lsdev –P –r class
3.3使用lspv命令
格式: lspv [-l | -p | -M ] [-n DescriptorPhysicalVolume] [-v VolumeGroupID]
参数:
-p:列出该PV上每个PP的range,state,region, lv name, type and mount point。
-v VolumeGroupID:列出基于该VolumeGroupID变量的有关信息
比如:#lspv –p hdisk0
3.4配置系统设备
1、cfgmgr命令用于配置系统设备,并且可以选择性的安装所需的设备驱动软件包。
2、Congiguration Rules object class作为设备配置数据库(Device Configuration database)的一部分,每条配置规则包含有三项:要运行的可执行程序的全路径,什么时候运行该程序(即seq项),哪一阶段运行该程序。如:
Phase   seq                rule
1                1                /usr/lib/methods/defsys
2                5                /usr/lib/methods/ptynode
3                10                /usr/lib/methods/startlft
cfgmgr运行分为三个阶段,分别有-f,-s或不带参数,-p 3来设定。
先后顺序(即seq项),数值越小,优先级越高,但0除外,它的优先级最小。所有在seq项中,值为1时优先级最高。
3、在使用cfgmgr来安装配置设备时,有时会提示某些需要的设备驱动软件没有安装,如果系统没办法确定该安装哪个软件包版本,它会使用:(冒号)隔开,在同一行内列出可能需要安装的驱动软件包。这时,还可以指定-i来让系统自动安装所需的驱动软件包。
4、参数说明
-i device:指定安装介质的路径
-l Name: 指定要配置的设备名
-p Phase: 指定确定的某一阶段
-s:       运行第二阶段配置规则
-v:       显示信息输出
比如:#cfgmgr –l scsi0
#cfgmgr –i /usr/sys/inst.images
3.3系统管理服务(SMS)
cfgmgr是在软件层面上去管理配置设备,可以使用SMS在硬件层面上去检测和配置系统配件。
在系统启动时按F1进入图形SMS菜单。(或按F4进入ASCII SMS菜单),如果在启动时最后一个IBM图标(icon)出现后在按F1或F4,那么这时将进入正常的启动引导阶段。
可以在SMS中设置进入密码,但如果忘记的话,唯一的办法是对主板的芯片放电(remove the on-board system battary)
3.4硬件设备的兼容性
    SCSI,PCI和ISA不同标准和接口的设备,配置不同。
3.4.1设备配置数据库
设备配置信息是存储在设备设备配置数据库(Device Configuration Database),通过ODM来管理的。它包括两个内容:
预定义数据库:包括所有可能配置到系统的设备配置数据。
已定制好数据库:包括系统中所有目前已定义的和配置好的设备的配置信息。
3.4.2使用lsattr命令
使用lsattr命令来列出某个设备或某种设备的信息。语法如下:
lsattr { -D [-o ] | -E [ -o ] | -F Format } –l Name [-a Attribute ] ….[-f File] [-h ] [ -H ]
-D: 显示缺省值
-E: 显示当前值
-a Attribute: 指定某个或某类设备的某个属性
-l Name: 指定定制设备对象类的设备登录名(简单说,就是设备名)
-R: 指定某一属性的合法值(可能取值)
-s Subclass: 指定某一设备子类名
-t Type:指定某一类设备
比如:
#lsattr –El rmt0
#lsattr –Dl rmt0
#lsattr –l scsi0 –a bus_intr_lvl –E
#lsattr –l tty0 –a login –R  
此命令输出:enable disable share delay hold
注意,使用lasttr命令所显示的设备属性的有效值是从配置数据库取得的,如果使用chdev没有使用-p参数,结果改了设备的属性,但还没有更新到配置数据库中去,这时lsattr显示的可能不是该设备属性的实际值,直到等到系统重启后两者数据才会一致。(试一试,不要重启情况)
3.6使用smit device菜单
3.7系统错误日志
3.7.1使用errdemon命令
errdemon守护进程(/usr/lib/errdemon)检测系统错误并写入到/dev/error。该错误日志最终记录到/var/adm/ras/errlog文件中去。
#/usr/lib/errdemon –l     显示有关配置情况
#/usr/lib/errdemon –B 16384   
#/usr/lib/errdemon –s 2000000
3.7.2使用errpt命令
errpt命令步骤任何错误日志分析,可以使用diag来分析错误。
参数:
-s StartDate: 指定在该指定时间后的日志
比如:
#errpt –aj 2bfa76f6
#errpt –a –s 0405093005     显示2005年4月5日9:30以来的日志
3.7.3使用errlogger命令
可以使用errlogger命令来记录操作信息或其它信息到系统错误日志中去。
#errlogger Testing use of errlogger command.
3.7.4其它error有关命令
errclear
errinstall: 在错误日志信息设置中安装信息
errupdate: 升级错误记录模板储存库
3.8诊断硬件问题
利用diag上多个可选的工具和服务可以用来诊断硬件上的问题,运行diag,选择Diagnostic Routines,再选择Problem Determination。
也可以使用命令行#diag –d sysplannar0 –v –e来诊断sysplannar0设备的问题。
3.9系统日志
Aix使用syslogd来记录系统信息,syslogd守护进行读取数据报路(datagram socket)并把它记录到/etc/syslog.conf中定义的目的地。/etc/syslog.pid文件中记录的是syslogd守护进程的进程号,可以使用kill或refresh等命令来重启或刷新该守护进行,一旦syslog.conf配置文件被改动后。
每条信息各成一行,它可能包含一个有在<>;号里标记的优先级代码,超过900bytes的信息会被截去。
/usr/include/sys/syslog.h文件里包含着定义在/etc/syslog.conf文件里可以定义的各种工具和优先级代码。
Syslogd命令语法:syslogd [-d] [-s]  [-f ConfigurationFile] [-m Markinterval] [-r]
3.9.1 syslogd配置文件
/etc/syslog.conf文件控制着syslogd守护进程的行为,它决定着syslogd往哪里发送错误信息和如何对其它系统的事件作出反映等。
3.9.2/etc/syslog.conf配置文件的格式
syslog.conf配置文件的每一行包含有一个选择项和一个动作项,中间用一个或多个tab(空格)键隔开。比如:mail.debug        /usr/spool/mqueue/syslog
在选址项中,定义一个工具及其优先级,中间由点号连接,可以由多个选址项并列,中间要用分号隔开,要选择所有的工具,用星号(*)。如: *.debug;mail.none /tmp/debug.log。
工具由以下几项:kern, user, mail, daemon, auth, syslog, lpr, news, uucp, * ,其中*代表所有工具。
优先级别:emerg, alert, crit, err, warning, notice, info, debug, none,其中none的含义是不包含所选的工具,只用于在同一行中有*号工具的定义行。如:*.err;lpr.none /tmp/error.log。在syslog.conf文件中定义了某级别,意思就是在该级别和该级别以上的所有信息都会被记录。
在动作项(action field)中,可以定义要把信息发送的所在地,如某个目录或某个用户,某台主机。可有:File Nmae, @Host, User [,User][…]。
3.9.3使用系统日志
1、启动关闭和刷新syslogd进程。
Syslog.conf的配置
2、定义mail工具在debug级别或以上信息到文件/tmp/mail.syslog,
                mail.debug        /tmp/mailsyslog
3、定义所有错误级别或以上信息,出来lpd工具到主机Logserver
    *.err;lpd.none                @Logserver
4、定义所有的mail工具信息到所有用户终端屏幕
                mail.debug        *
5、定义所以在emerg优先级或以上和mail、daemon工具在crit级别以上信息给用户stan和xtjk
                *.emerg;mail,daemon.crit        stan,xjtk
3.10设置一个ASCII终端
使用smit tty或直接使用smit maktty,也可以使用mkdev命令行。
#mkdev –c tty –t tty –s rs232 –p sa0 –w s1 –a login=enable –a term=vt100
#rmdel –l tty_name –d         删除某个终端。


Chap4 系统和软件安装
4.1基本操作系统安装
要安装操作系统,在机器启动时要切换到维护模式,即听到嘀声后按下F5(或Esc+5)键来选择安装选项。
4.1.1全新完全安装
4.1.2升级安装(Migration installation)
保留了rootvg里的所有文件系统、lv和系统配置文件,除了/tmp文件系统。
4.1.3保留安装
保留用户数据,将会删除和重建操作系统的文件系统如/,/var,/tmp,/usr四个文件系统。任何在这些目录的用户数据也会丢失。系统配置将必须重做。
可以使用/etc/preserve.list来定义需要保留的系统文件。The /etc/filesystems files is listed by default.
4.2高级安装选项
4.2.1安装Package Set or Desktop
该选项让你配置系统启动后将会使用的界面。缺省是安装Package Set而这就只能选择ASCII控制台。
Desktop选项是图形界面,可以选择CDE,KDE,GNOME等图形界面,如果选择None,那在此选项下支行安装最小的配置如X11,Java,perl,SMIT和基于Web的系统管理工具。
4.2.2启用Trusted Computing Base(TCB)
本选项提供一个更高级别的安全。选择本选项将会安装bos.rte.security软件包,而且你配置和启用它。如果你在此时不安装TCB,那么你就要重新安装操作系统。安装了TCB,你可以在系统中通过卸装bos.rte.security软件报来卸载。
4.2.3启用64-bit和JFS2
    如果你的机器是64位的处理器,那么将会默认加载(load)64-bit内核,但只有你选择了这一选项后系统启用(enable)64-bit内核。
如果你是升级安装而来,那么原来的JFS文件系统将不会转换成JFS2文件系统。
4.3配置助手(Configuration Assistant)
安装完毕系统重启后,配置助手工具/usr/sbin/install_assist将会自动运行。
配置完毕后,记得要“退出配置助手”,选择“结束”,这样下次启动才不会还是自动启动配置助手。
4.4理解maintenance levels
使用oslevel命令来鉴定一个系统的软件的维护版本(maintaneance level)
osleve [-l  Level | -g -q ]
-l Level:列出早于指定维护版本的fileset。
-g: 列出迟于目前维护版本的fileset
软件的版本:vv.rr.mmmm.ffff
vv:version number 版本号
rr: release number 发布版号
mmmm: modifacation level  修改版号
ffff: fix level      补丁版号
例如:
#oslevel
#oslevel –q
#oslevel –g
#oslevel –l 4.3.3.0
4.5软件包(software packaging)
4.5.1Filesets
A fileset是Aix操作系统最小的安装基本单位。比如bos.net.uucp或者bos.net.nfs.client。
4.5.2Packages
一组提供某种特定功能的fileset的集合。如bos.net。
4.5.3Licensed Porgram Products(LPP)
A Licensed Program Product is a complete software product including all packages associated with that licensed porgram.
4.5.4Bungles
A bungle is a list of software that can contain filesets,packages,and LPPs that are suited for a particular use.
系统定义的默认bundles在/usr/sys/inst.data/sys_bundles。而用户生成的bundles则储存在/usr/sys/inst.data/user_bundles。
4.5.5PTFs and APARs
PTF: Program Temporary Fix的首字母的缩写词。如同其它软件包一样,它使用lslpp命令来安装。
APAR:Authorized Program Analysis Report的首字母的缩写词。它使用instfix命令来安装到系统中去。
经过测试和确认后,APARs最后将变成PTFs。
4.6 安装可选的软件包或升级
4.6.1 installp命令
软件可以安装成两种状态:applied和committed。Applied状态保存了原来以前版本的软件,它把以前版本存储在/usr/lpp/PackageName目录下。这种方式可以回滚到以前的软件版本。而committed状态删除了存放在/usr/lpp/PackageName目录下的所有以前版本。建议在安装新软件包时使用applied状态而不要使用committed。
1、安装软件在applied状态
#installp –avx –d /usr/inst.images bos.net
2、安装软件在committed状态
#installp –acpX –d /usr/inst.images bos.net
注意:如果你同时从同一个安装介质中运行两个installp命令,将会提示错误,这时你可能要使用installp –C来清除失败的安装
还有,安装结果输出到/var/adm/sw/installp.summary,可以查看该文件来查看安装了哪些软件包。
3、提交(committing)处于applied状态的软件升级包
#installp –cgX all
4、取消applied状态的升级,回到原来的版本
#installp –rBfx ./reject.list
5、删除已安装的软件
#installp –ugp –V2 bos.net.ipsec.rte
6、失败安装过后的清除
#installp –C
7、        列出安装介质上所有可安装的软件包
#installp –L –d /dev/cd0
4.6.2使用smit来维护软件
使用smit菜单来维护软件时,可以在/var/adm/sw/installp.log记录维护日志,如同使用installp命令一样,当然使用smit也会在$HOME/smit.log记录使用smit的日志。
上机练习
4.7维护可选软件(应用于软件包升级)
被发布用于修复一个问题的软件称为update。
4.7.1列出软件的维护版本
使用lslpp命令,有以下选项:
-f:列出属于某个软件包的所有文件
-w:列出某个文件属于哪个软件包
-h:列出软件包安装和升级的历史信息,可以查看安装或升级时间
-a: 但和其它选项合着使用时,列出指定软件包的所有信息,不能和-f一起使用。
1、列出当前软件包的维护版本
#lslpp –l
2、列出某软件包包含哪些文件
#lslpp –f bos.net
3、列出安装和升级历史
#lslpp –h bos.sysmgt.trace
4.7.2下载补丁
使用IBM提供的FixDist工具可以到service.software.ibm.com站点下载补丁包(fixes)
BFF格式:Backup File Format,是使用Aix系统命令backup来生成的,可以使用restore来读取,补丁包一般是.bff格式,还包括有.info文件来描述升级包。
.toc 和inutoc命令
4.7.3显示和升级安装的软件到最新版本
显示一个单一的补丁
使用instfix命令,有以下选项:
-a: 显示一个补丁的特征文本说明
-i: 显示补丁或关键字是否已安装
-k Keyword: 指定一个APAR号或关键字
-T: 显示安装介质的补丁列表
例如:
1、列出补丁列表
#instfix –T –d /dev/cd0
2、查看APAR IX75893是否已经安装
#instfix –aik IX75893
3、查看补丁IX75893的相关信息
#instfix –aik IX75893
4、查看哪些维护版本安装到系统上
#instfix –i |grep ML
    5、安装补丁
#instfix –aix IX75893 –d /dev/cd0
也使用smit show_apar_stat来查看补丁的状态,使用smit updata_by_fix来安装APAR,使用smit update_all来升级所有软件包到最新版本。
4.8在硬盘上创建安装映象
使用smit bffcreate菜单。
使用这种方法可以解决需要安装处于不同安装介质(如不同光盘)的但有相互依赖(co-requisites)的软件包。
4.9 可变的硬盘安装
可以减少停机时间,可是用于测试新的版本。只在4.3或以上版本可用。
4.9.1需事先安装的软件包
bos.alt_disk_install.boot_images: 用于使用mksysb备份带来安装。
Bos.alt_disk_install.rte用于使用克隆rootvg来安装。
4.9.2可变的rootvg克隆
把当前的rootvg克隆到该系统中一个新的硬盘中,注意,不支持SSA硬盘。
4.9.3可变的mksysb安装
    可以使用不同机型或架构的mksysb备份带来安装。


Chap 6 存储管理、LVM和文件系统
6.1相关概念
PV、VG、PP、LV、LP的概念和相互关系。
6.2逻辑卷管理
6.3 LVM配置数据
对vg, lv, 和pv的描述数据并不是只放在一个地方,而是存放在很多地方。
1、ODM数据库
ODM数据库存放着包括所有配置PV、VG和LV的信息,它和VGDA中的信息是镜像的。比如,在import一个vg时,VGDA的信息就会拷贝到ODM库中。
ODM数据库同时也存放着与Logical Volume Control Block(逻辑卷控制块)镜像的信息。
2、VGDA(volume group descriptor area)
在一个vg包含的pv的开始部分,存放着所有的属于该vg的lv、pv的描述信息。
每个硬盘至少包含有一个VGDA,每个VGDA都有个时间戳,它鉴定了该VGDA是否时最新的,有时VGDA没有被同步。所以,有时你需要更新这些没有同步的VGDA信息,这也是varyon程序所要做的。
VGDA是在一块硬盘被分配为PV是分配的,而在一个PV加入一个VG时,该VGDA加入了VG的相关信息,当一个PV从VG删除时,相应的VG信息也从VGDA中删除啦。
3、VGSA(volume group status area)
VGSA保存这pv和pp的状态信息。
4、LVCB(logical volme control block)
LVCB位于每个lv的开始部分。它包含每个lv的信息,使用了几百个字节空间大小。
如:#getlvcb –TA hd2  (其它命令)
6.2.2Disk quorum
每个PV上VGDA的个数,主要看该VG包含基本PV。
当一个quorum失去后,该vg自动varyoff掉,使用lvm无法在进入该vg,保证了数据不会丢失。
在镜像情况下,可以把quorum关掉,这时可以提高该vg的可用性,但可能会导致数据丢失的风险,所有要及时更换故障硬盘。
6.2.3硬盘镜像
Aix提供一个lv级别上的镜像工具,但使用mklv来创建一个lv时,可以选择两到三个拷贝。但为了增强该lv的可用性,需要把这些拷贝放在不同的硬盘上。
mirrorvg命令,也可以使用mklvcopy来镜像某个lv,但前提是目标盘必须已经加入到该vg中去。
1、替换一个坏的硬盘,换上一个新硬盘到一个镜像的vg上:
#umirrorvg  uservg hdisk4
#reducevg uservg hdisk4
#redev –dl hdisk4
换上一块新硬盘,然后
#extendvg uservg hdisk4
#mirrorvg uservg
2、生成一个严格对应的镜像
#mirrorvg –m datavg hdisk2 hdisk3
3、rootvg的镜像(quorum时候自动关闭)
使用mirrorvg做完镜像后,还需要使用bosboot, bootlist等命令。其中bosboot生成一个新的引导映象,而bootlist是把新的硬盘加入引导行列。
注意:不要没有做成功bosboot就重启机器,很可能导致系统启动不了。
4、非rootvg的镜像
但一个非rootvg的vg镜像后,该quorum会自动关闭,但只有varyoff,varyon该vg后才能生效。
对于dump设备(/dev/hd6,一般也是paging space),系统是不会mirror的。但如果dump设备和paging设备是在不同的lv上,则paging设备会自动mirrored,而dump设备不会mirrored。
6.3管理pv
6.3.1配置一个pv
6.3.2使一个可用的硬盘变成一个pv。
#chdev –l hdisk2 –a pv=yes,该命令为该disk分配了一个PVID。
6.3.3改变pv的属性
1、设置pv的可分配权限
#chpv –a y(n) hdisk2
2、设置pv的可用性
#chpv –v r pvname  该命令停止了该pv上的所有VGDA和VGSA的拷贝。
#chpv –v a pvname
6.3.4删除pv
#rmdev –dl hdisk1
如果不加入-d参数,则不会在ODM库中删除该pv的定义。
6.3.5列出pv的相关信息
1、列出系统中的pv
#lvpv  或
#lvdev –Cc disk
2、列出pv的属性
#lspv hdisk1
注意有VG Descriptors的信息,还有VG State的信息(如果有些该VG的pv是inactive则显示active/partial)
3、列出一个pv的分配(allocation)信息
#lspv –l hdisk1
4、列出pv的分区信息(partition allocation by PV region)
#lvpv –p hdisk1
5、列出物理分区表
可以使用以下命令来查看数据存放的连续度,以提供该PV的I/O性能。
#lspv –M hdisk1
6、移植一个pv上的内容
使用migratepv命令,但前提是目标pv必须和源pv在同一个vg上。
注意如果移植rootvg,要单独移植hd5(#migratepv –l hd5 SourceDiskNumber DestinationDiskNumber),并且移植完hd5后,要使用bosboot和bootlist命令。同时还有使用mkboot –c –d /dev/SourceDiskNumber命令来清理引导记录。
#bosboot –ad /dev/DestinationDiskNumber
#bootlist –m normal DestinationDiskNumber
#mkboot –c –d /dev/ SourceDiskNumber
6.4管理vg
6.4.1添加一个vg
可以使用smit vg和mkvg命令,mkvg命令还提供以下选项:
-d: 该vg所能包含的最大pv数
-m:指定该vg所能包含pv的最大大小,它将决定可以使用多少个pp,默认是1016个。
注意:创建一个vg是,根文件系统空间至少要有2MB的空间大小,将会创建/etc/vg目录。
6.4.2改变vg属性
1、改变vg的激活属性
#chvg –an(-ay) newvg    指定该vg在系统启动时是否自动varyon。
2、解锁一个vg
但一个LVM命令异常中断时,vg可能会被锁住,这时可以使用下列命令,
#chvg –u newvg
3、添加一个pv
#extendvg newvg hdisk3
当然,如果你想添加一个原来已经属于一个varied状态vg的pv时,将会出错。如果该vg没有被varyon,这时,系统会问你是否确定要这么做。
4、删除一个pv
注意,对应的该vg必须处于varyon状态,所属的pv才能被删除(这时才能写VGDA信息)
#reducevg myvg hdisk3
reducevg有-d和-f选项:
-d: 在删除该pv前,将会自动删除该pv上的所有lv,这将很危险,因为有的lv可能跨越了不同的pv。
-f: 强制删除lv,不经过确认。
5、删除一个PV的标记(reference)
如果在移走一块硬盘前没有事先做好reducevg myvg hdisk3,这时该vg的VGDA信息将还会保留那块已经移走硬盘的信息。这时通过以下命令可以删除该pv的信息。
#reducevg VolumeGroup 000000536c63937   
6.4.3导入和导出一个vg
为了从ODM库中删除一个vg的系统定义,必须使用exportvg命令。而importvg则是从VGDA中读取vg信息并加入到ODM库中。
如果要导入的vg和原来系统中的vg有重名,则可以指定一个新的vg名,或者有系统来指定一个vg名。同样,如果该vg的lv有重名,则系统也会重新分配新的lv名。
注意,从一个系统移植vg到另一个系统中去,一定要事先做好exportvg。
注意:
1、如果没有冲突,importvg也将会对该vg上fs在系统的/etc/filesystems文件中创建mount point。
2、如果一个vg包含有活动的paging space,则不能直接exportvg,必须先把该paging space置于不活动状态。
3、在importvg后,建议对vg的fs进行fsck,在mount这些fs前。
4、使用smit exportvg命令将会删除/etc/filesystems的相应的文件系统说明,但会在系统中保留mount points。
6.4.4varyon和varyoff一个vg
理解varyon vg的过程,读取并判断VGDA的可用性,刷新并同步VGDA的信息。
varyonvg有以下选项:
-f: 强制varyon,即使VGDA和ODM库中信息不一样。
-n: 指定在varyon时不自动使用syncvg命令来同步处于stale状态的分区。
-s: varyon成维护模式
6.4.5管理vg
1、列出varyon状态的vg
#lsvg –o
2、列出vg的属性
#lsvg myvg
3、列出vg中的lv
#lsvg –l myvg
4、列出一个vg中pv的状态
#lsvg –p myvg
6.4.6重新组织一个vg
使用reorgvg命令来重新组织一个vg中的pp分区情况,前提是指定的该lv必须是可重新分配的,可以使用chlv –r命令来更改。
注意:对条带化的lv不会重新分配存放位置。
在4.2或更高版本上,如果recorgvg后面没有指定lv名字,则默认只对该vg中的第一个lv重组。
#reorgvg vg02 lv03 lv04
#echo “hdisk06” | reorgvg -i vg02 lv203 lv205
6.4.7同步一个vg
使用syncvg来同步处于stale状态的lv拷贝。比如拔掉一块硬盘重新插上以后。
其实,在varyonvg命令使用时,会自动使用syncvg来同步即将varyon的vg。
1、同步hdisk04和hdisk05上的拷贝
#syncvg –p hdisk04 hdisk05
2、同步vg04和vg05上的拷贝
#syncvg –v vg04 vg05
6.5管理lv
6.5.1添加一个lv
创建一个lv时其默认的最大值是最大可以有128个逻辑分区(logical partitions)
使用mklv命令,可以使用-t来指定类型,但不能创建boot类型的lv。
也可以使用smit mklv菜单,如果没有指定PHYSICAL VOLUME,则默认在系统的第一个PV上创建lv。
6.5.2删除一个lv
可以使用rmlv或smit relv菜单。
rmlv命令有两个选项,-f和-p。
-p PhysicalVolume: 只删除指定PV上的逻辑分区,除非其它pv上没有lp,否则不会删除该lv。
6.5.3减小lv的大小
备份数据,删除原来lv,重建新的较小的lv,恢复数据。
6.5.4增大lv的大小
使用smit chjfs或者extednlv命令
6.5.5拷贝一个lv
可以把lv拷贝到一个新的lv或原已经存在的lv上,但将会覆盖原来的lv。
使用cplv命令行
1、拷贝一个lv到一个新的lv上
#cplv –v myvg –y newlv oldlv
本命令将会拷贝oldlv的内容到新的,在myvg上的newlv上,如果没有指定vg名,则会在oldlv所在的vg上创建newlv。本命令会自动新建一个lv,无需先用手工创建newlv。
2、拷贝一个lv到一个原已经存在的lv上(lv应该不过关闭)
#cplv –e existinglv oldlv
existinglv上的数据将会被覆盖,并且要确认existinglv的大小不能小于oldlv。
3、使用smit cplv菜单
如果你碰到错误提示:cplv: Destination logical volume must have type set to copy,这时你要改变lv的可拷贝属性:#chlv –t copy Destination_Logical_Volume_Name。
6.5.6分开一个lv的多个拷贝
使用splitlvcopy命令可以分开一个lv上的拷贝而把它建成一个新的独立的lv。
注意:虽然splitlvcopy可以对打开的lv进行操作,但为了安全起见,还是健康umount文件系统把lv关闭后在进行操作。
#splitlvcopy –y newlv oldlv 2
6..5.7列出lv
lslv lvname
6.5.8lv的大小
要注意有多个拷贝的情况。
Totel LV size=PP size*LPs assigned to LV * Number of copies of the LV
6.6管理文件系统
JFS把lv分成固定大小的逻辑块(logical block),有Logical Block 0, Superblock(位于第1和第31个逻辑块),Allocation Groups。
6.6.1文件系统的属性
1、Number of I-nodes 和nbpi(number of bytes per i-node)
JFS最大的i-nodes是224 (16MB)
2、Allocation group size
3、File system fragment addressability
Each fragment must be addressable by a number from 0 to 228
4、JFS log
5、最大的文件系统大小
是NBPI*224和Fragment Size*228的较小值,所以,可以把NBPI选大一点,但Fragment Size更加文件的事件大小来考虑。
6.6.2创建一个fs
使用smit crjfs菜单或者crfs命令来创建。
#crfs –v jfs –g rootvg –a size=8192 –m /mydata
注意,命令不是cfjfs
6.6.3mount一个文件系统
When a file system is mounted over a directory, the permissions of the root directory of the mounted file system takes precedence over the permissions of the mount point.
使用命令行mount,可以使用mount –a或mount all来mount全部文件系统。
也可以使用smit mount。
自动mounting,有两类文件系统,在/etc/filesystem文件中的mount=automatic和mount=true,前者是操作系统的四个文件系统(/,/var,/tmp,/usr),在boot阶段(多用户初始化之前)就已经mount,所有要注意,在系统运行过程中,这四个文件系统是不能被umount下来的。后者是用户定义和控制的,在多用户初始化时,有/etc/rc脚本调用mount all命令来mount这些文件系统。
可以使用chfs –A yes file_system命令来改变文件系统在系统启动时是否自动mount。
6.6.4删除一个文件系统
先umount,后在删除,也可以使用rmfs命令行,如果要删除mount point,则要加上-r参数。#rmfs –r myfs
6.6.5加大文件系统的大小
使用chfs命令或smit chjfs菜单
6.6.6减小文件系统的大小
如果是非操作系统的文件系统,可以使用多种方式(cpio, backup, tar, savevg等)备份数据后,删除文件系统,重建后,恢复数据方式进行。
更重要的是,可以使用mksysb备份带来减小一个文件系统的大小,在使用备份带恢复时,可以选用shrink选项来缩小文件系统的大小,对于操作系统的几个文件系统(如/, /var, /tmp, /usr)来说,只能采用这种方法。
6.6.7检查文件系统的一致性
建议在mount文件系统前使用fsck来检查文件系统的一致性,如果使用fsck命令没有指定任何文件系统,则它将会检查/etc/filesystems文件里check=true的所有文件系统。
注意到,/etc/filesystems文件里,操作系统的四个文件系统(/, /var, /tmp, /usr)的check=false),这时由于在启动阶段(boot process)就已经fsck了这四个文件系统,而在多用户启动初始化时,是不需要fsck来检查已经mount的文件系统的。
6.6.8初始化JFS日志设备
使用logform LogName命令行。
6.6.9JFS日志设备的存放位置
应尽量把JFS日志设备放置在比较空间的磁盘上,同时也可以使用多个JFS日志设备。
6.6.10大文件系统支持
使用lsfs –q 可以查看文件系统是否支持大文件系统,注意有bf: true输出项。
6.7解决文件问题
6.7.1恢复超级块错误
如果提示:
fsck:Not an AixV4 file system
fsck:Not a recognized file system type
使用dd来恢复受破坏的超级块
#dd count=1 bs=4k skip=31 seek=1 if=/dev/lv00 of=/dev/lv00
然后再用fsck来检查文件系统。
6.7.2无法umount文件系统
fuser,genkex等命令的使用。
#find /home –type d –exec fuser –u {} \;


Chap 7 Paging space
7.1概述   
以4K为单位,也叫swap sapce,在实际内存和辅助存储(如磁盘空间)之间置换(换页)数据。当系统的时间内存比较低时,内存里的最近没有使用的程序或数据被置换到paging space。
在安装时,Aix默认使用hd6作为paging space设备,在4.2.1版,大小不能小于32MB,如果是4.3,则不能小于64MB,如果内存小于256MB,这大小可以为实际内存的两倍,如果内存大于等于256MB,则设置为512MB。(知识太旧啦)
7.1.1Paging space大小的考虑
如果paging space太小了,进程可能会丢失,甚至系统会崩溃。当空余的paging space blocks下降到一个阀值时,系统会通知所有进程。
1、paging spaces放置的位置
放置paging space到不同的pv上可以提高性能,不建议一块硬盘上放置多个paging space。
2、paging spaces的大小
总的大小一般建议为实际内存的两倍大,如果内存大于256MB,则为512MB+(memory size-256MB)*1.25。
如果要建立多个paging space,则必须建得差不多大小,因为paging space采用round-robin循环算法,并且由于启动时只有hd6是激活的,所以要把hd6建得稍大一点。
Lsps –a命令查看每个paging sapce的使用情况,而lsps –s则是查看所有活动的paging space的总和和使用率。
3、paging space所在vg的限制
如果是5.1以前的版本,则不要把paging space放置到可移动的硬盘空间去,尽量只把它放置到rootvg上。因为如果要export含有激活的paging space的vg ,则比较麻烦,还要重启机器。
如果是5L以上版本,则问题不大,但也要swapoff该paging space。
7.2管理交换空间
有以下命令:chps, lsps, mkps, rmps, swapon, swapoff。注意mkps和mklv –t paging的区别。还有rmps和rmlv。
在系统启动早期阶段,/sbin/rc.boot脚本调用swapon来激活主交换空间hd6,在后面的阶段,才激活其它交换分区。活动的交换分区不能被删除,如果是5L以前版本,则要使用chps –a n命令来使得系统重启后不激活(如果是hd6,还要改动/sbin/rc.boot里的swapon命令),重启系统后才能删除该交换空间。
使用swapon –a命令将激活/etc/swapsapces文件里所列的所有交换空间,使用mkps –a命令创建一个新的交换空间时将自动添加该空间名到该文件里,而使用rmps来删除一个交换空间时也会自动删除该文件里的定义。
7.2.1显示交换空间属性
使用lsps命令,有#lsps –a和#lsps –s用法
#lsps –a –c
7.2.2添加和激活一个交换空间
不要把交换空间加到经常移动的磁盘空间里,直接移走一个带有活动交换空间的硬盘将导致系统崩溃。
使用smit mkps(可以使用mkps命令吗)
7.2.3改变交换空间的属性
1、使交换空间不活动
使用smit chps菜单,做完后可用lsps –a命令来查看。
2、动态使交换空间不活动(5.1版具有的功能)
使用swapoff命令,或者使用smit swapoff菜单。注意其它的交换空间这时要有足够的剩余空间。
3、增加交换空间大小
也是使用smit chps菜单。
4、动态减少交换空间大小(5.1才有,不要重启)
5L版引进chps –d命令,可以动态减少交换空间大小,无需重启系统。
#chps –d 2 paging01
7.2.4删除一个交换空间(非hd6)
基本思路:设置重启时不激活(同时要检查是否是主dump设备)->;重启机器->;删除该交换空间。
如果是5L版,则无需重启,使用swapoff和rmps两个命令即可(当然也要检查dump设备)
#swapoff /dev/paging00
#rmps paging00
7.2.5管理缺省的交换空间(hd6)
因为hd6在系统启动时是由启动脚本/sbin/rc.boot激活的,所有要记得改动该脚本,同时要记得重新生成一个引导映象,也要注意检查改变dump主设备。
1、减小hd6的大小
删除重建的概念。
2、在5L中减小hd6大小
可以动态减少,系统自动生成一个临时的引导映象和临时的/sbin/rc.boot使得系统总是可以安全的被重启。
3、移动hd6到另一个vg上
不建议这么做,因为the name(hd6) is hard-coded in several palces。
只有在rootvg上的交换空间才可以在启动的第二阶段(也就是平常/sbin/rc.boot激活hd6的时候)被激活。
4、在同一个vg上(就是rootvg啦)的不同硬盘上移动hd6
使用migratepv命令
#migratepv –l hd6 hdisk0 hdisk1

Chap 8系统备份、恢复和可用性
几个命令及其用法(p214)
8.1mksysb命令
用户定义的paging sapces和裸设备不会被备份(那么恢复时用户定义的交换空间就没掉啦?)
8.1.1mksysb磁带的数据展示
三个512字节大小的image:BOS boot image、mkinsttape image、dummy.toc
        其中BOS boot image包含一个系统内核的拷贝和引导设备的驱动,它是由bosboot命令来创建的。
Mkinsttape image里包含三个文件:./tapeblksz、./image.data、./bosints.data。
./tapeblksz文件指定磁带设备的block大小
./bosinsts.data包含定制的BOS安装过程并指定了BOS的安装程序的表现。你可以在使用mksysb命令前就定制这个文件或者在备份完后再定制这一文件。
./image.data文件包含安装过程中该image的描述信息,如rootvg中逻辑卷和文件系统的大小、名字、对应信息(map)和安装点等。可以在使用mksysb命令前就定制这个文件,或者使用mksysb –i(实际上也是调用mkszfize命令)来创建一个新的./image.data文件。
(实验:备份系统中原有的image.data文件,再用mkszfile命令创建一个新的,比较。
如果没有选择生成新的image.data文件,是不是磁带上就用操作系统上原有的image.data)
该文件格式及相关参数,注意由以下参数:
SHRINK: 如果设置为YES,则恢复时创建尽量小的文件系统。
BOSINST_FILE:提供BOS安装完毕后要运行的文件或命令的全路径名。
EXACT_FIE: 如果设置YES,则恢复时严格按照有mksysb带-m参数(也就是在smit mksysb菜单中的选项:Create map file)创建的map文件中定义的pp位置来放置逻辑卷。
在其后的备份数据是有backup命令生成的,所有可以用restore命令来恢复单个文件或文件夹。
8.1.2备份中不包括的文件系统
使用/etc/exclude.rootvg文件,同时使用-e参数
#mksysb –e /dev/rmt0
8.1.3创建一个可引导的系统备份
使用smit mksysb菜单
8.1.4使用mksysb备份一个用户定义的vg
不支持,可以选用savevg、tar、cpio或backup命令
8.2备份用户数据(非rootvg)
8.2.1备份一个用户定义的vg
可以使用savevg来备份一个用户定义的vg上的数据,但该vg必须是varyon的,并且只有mount的文件系统才被备份。
Savevg命令调用mkvgdata命令来
#savevg –if /dev/rmt0 datavg
8.2.2备份当前目录
1、使用tar命令
#cd /etc
#tar –cvf /dev/rmt0 *
2、使用backup命令
注意使用相对路径或绝对路径
#cd /etc
#find . –depth | backup –i –f /dev/rmt0
3、使用cpio命令
#cd  /
#find /etc –print | cpio –o –c –v –B >; /dev/rmt0
上述命令采用了绝对路径。
8.2.3增量备份
可以使用backup命令来进行经常被改动的数据的增量备份。backup命令使用-u参数,指定增量备份级别,更改/etc/dumpdates中最近一次增量备份的时间、日期和级别。(P216)
backup的增量备份级别支持从0到9的级别,每次增量备份的关于日期时间等都会写到/etc/dumpdates文件里。如:
/dev/lv01                0        Mon Jun 04 02:00:00 2003
/dev/lv01                1        Wed Dec05 02:00:00 2003
8.3从备份介质中恢复数据
8.3.1 tctl磁带操作命令
使用tctl命令来操控磁带,如果没有使用-f参数来指定磁带设备,则也可以使用TAPE环境变量。
其子命令包括:
rewind: 重绕磁带即倒带
rewoofl or offline: 倒带并离线
status:显示指定磁带设备的状态
fst Count: 先前移动指定参数(number of file marks)磁带。
bst Count: 向后移动磁带
8.3.2如何恢复一个文件
从备份带中恢复一个文件,比如要恢复/etc/hosts单个文件,取决于你使用何种方式备份数据。
1、mksysb
#tclt –f /dev/rmt0 rewind
列出备份带的信息
#restorre –T –d –v –q –s4 –f /dev/rmt0.1
恢复/etc/hosts文件
#tclt –f /dev/rmt0 rewind
#restore –x –d –v –q –s4 –f /dev/rmt0.1 ./etc/hosts
注意/etc/hosts文件名前的“.”号,这是restore命令所必须的。
2、tar
使用tar来备份的数据可以使用以下方式恢复
#tar –xvf /dev/rmt0 /etc/hosts
3、cpio
#cpio –icduvmB < /dev/rmt0 “/etc/hosts”
4、restore
有两种方式,如果备份是使用-i参数来指定文件名的,则使用以下命令行:
#restore –x –d –v –q –f /dev/rmt0 /etc/hosts
注意根使用mksysb备份带时恢复时区别。
如果时备份整个文件系统的:
#restore –x –v –q –f /dev/rmt0 /etc/hosts
8.3.3如何恢复一个目录
  也是取决了备份时采用什么方式命令。
1、mksysb
例如要使用系统备份带恢复/var目录
#tctl –f /dev/rmt0 rewind
#restore –x –d –v –s4 –f /dev/rmt0.1 ./var
2、tar
#tar –xvf /dev/rmt0 /var
3、cpio
#cpio –icduvmB < /dev/rmt0 “/var/*”
4、restore
也是两种模式
#restore –x –d –v –q –f /dev/rmt0 /var
#restore –x –v –q –f /dev/rmt0 /var
8.3.4不正确的block size
如果block size设置不正确时,可能会碰到如下错误:
This is an input or output error.
可以有两种办法确定磁带的block size
1、使用tcopy命令
#tcopy /dev/rmt0
2、使用dd命令
#dd if=/dev/rmt0 bs=128k count=1 | wc –c
可以通过chdev命令来改变磁带设备的block size。
#chdev –l rmt0 –a block_size=1024
8.4克隆系统
可以使用mksysb来克隆你的系统到各种其它系统上,可能其它系统有不同的硬件设备或不同的平台架构。
使用目标系统随机带的安装介质(product media)引导系统,进行维护模式,选择“Instal from a System Backup”选项。从备份带安装完毕后,继续按屏幕中提示完成安装过程。
注意:可以使用bootinfo –p或lscfg –vp | grep Arch来查看该系统时候支持从磁带引导,有些rspc架构的系统不支持。
但系统备份带安装完毕后,安装程序会继续提示你使用随机带的安装介质(product media)来安装该系统需要的设备驱动或内核。安装信息会保存在/var/adm/ras目录下的devinst.log文件里。
8.5创建软盘的拷贝
使用dd命令
#dd if=/dev/fd0 of=/tmp/ddcopy
换上新的软盘
#dd if=/tmp/ddcopy of=/dev/fd0
8.6复制一个磁带
使用tcopy命令
如:#tcopy /dev/rmt0 /dev/rmt1
但如果磁带机规格不一样,可以吗?
8.7 special file notes for rmt
磁带机设备特殊的文件属性(special file characteristics)
根据是否自动倒带(rewind),retension-on-open,还有密度(bytes per inch)分为rmt*, rmt*.1一直到rmt*.7共八种。
Density setting #1和#2是设置磁带设备的数据存储密度,#1是最高密度,#2是最低密度。密度只对写时有效,读取磁带时按写的密度来读。
降低block size可能会浪费磁带空间。
8.8HACMP (high availability cluster multi-processing)
可以支持多种模式:concurrent access mode, mutual takeove mode, Idle standby mode.
通过添加冗余的磁盘驱动器、适配卡和网络连接来增强系统的可用性。


Chap 9 系统资源控制器管理(System resource controller administration)
SRC(system resource controller)提供了一组命令和子例程使得系统管理人员生成和控制子系统(subsystem)更容易。一个子系统是能够独立操作或有一个控制系统的一个或一组程序或进程,而一个子服务是属于一个子系统的程序或进程。注意subsystem和subserver的区别。
控制机制:
1、统一一致的开始、停止、或刷新子系统的用户接口
2、异常中断子系统的日志功能
3、跟踪一个、一组子系统或一个子服务。
4、支持远程系统的控制操作。
9.1启动SRC
在系统启动过程中,使用/etc/inittab脚本中的/usr/sbin/srcmstr语句来启动。一般情况下在系统正常运行时是无需再启动该服务的。因为有以下原因需要在系统初始化时启动它。
1、使用inittab脚本可以在SRC异常中断时由init自动再去重启它
2、可以减少操作
3、在/etc/inittab中,要使用startsrc命令来启动包括打印等其它守护进程。
查看man srcmstr帮助来确定支持远程src请求所需的配置。
如果在/etc/inittab中没有启动srcmstr的记录行,可以使用mkitab命令来生成一个,然后用telinit(或init) q来刷新它。
#mkitab –i fbcheck srcmstr:2:respawn:/usr/sbin/srcmstr
9.1.1telinit命令
telinit命令通过指定一个字符参数(一般是一个运行级别号)使init进程(进程号为1)来执行特别的操作。Telinit支持以下参数:
0-9: 运行级别
S,s,M,m: 告诉init进入维护模式
a,b,c: 告诉init检查/etc/inittab中带有a,b,c运行级别的记录行
Q,q: 高手init重新检查/etc/inittab的记录行
N: 发送信息停止正在进行respawned的进程
9.2重启SRC
一般情况下不想重启SRC,因为在/etc/inittab中启动SRC的该记录是指定respwan,也就是如果SRC异常中断,它可以自动重启srcmstr服务进程,同时自动重新建立子系统的通讯连接。注意当中断并重启srcmstr进程后,该进程号会更改。
可以编辑/etc/inittab中的该/usr/sbin/scrmstr记录,添加-r(如果是4.3.1以前版本)则添加-B参数,并且使用telinit –q(或init –q)来生效,使得sccmstr拒绝接收远程的请求。
9.3 startsrc命令
startsrc命令通过对SRC发送一个请求来启动一个或一组子系统或传送一个数据包来让子系统来系统一个子服务。
命令参数:
-a argument: 在子系统执行时指定一个参数串
#startsrc –s syslogd –a “-D DEBUG”
-e Environment: 指定一个环境字符串到该子系统的运行环境
#startsrc –s inetd –e “TERM=dumb HOME=tmp”
-g Group:
#startsrc –g nfs
-s Subsystem:
#startsrc –s inetd
-h host: 指定要启动动作的该远程机器,本地用户必须是root用户,远程系统也必须配置成能接受SRC的请求。
#starsrc –g nfs –h nfssvr
以下是启动一个子服务的选项:
-t Type:指定要启动的子服务名
#starsrc –t tester
-o Object:指定该子服务object要传递给子系统的字符串,子系统由义务决定该object string的有效性
#startsrc –o tester –p 1234
-p SubsystemPID: 指定要传送到的特定的子系统
#starsrc –t tester –p 1234   
9.4 syslogd守护进程
9.4.1启动syslogd
在系统启动过程中通过scrmstr来启动,在ODM库中有定义。
9.4.2 syslog的配置文件
可以指定-f参数来指定另一个可选的配置文件,当缺省情况下是使用/etc/syslog.conf文件。
该文件的记录行格式如下:
见3.9。
9.4.3刷新syslogd守护进程
使用stopsrc/startsrc来重启,或者使用refresh来刷新,也可以使用kill –1。
9.4.4 收集来自多个系统的syslog数据
可以在配置文件里指定远程主机名
9.5刷新一个守护进程
可以使用refresh命令来刷新,当你要刷新的资源不能使用信号通讯方式(user the signals communications method)。
9.6 cron守护进程
以下事件类型是由cron守护进程来安排的:
crontab和at命令事件
batch命令事件
sync子例程事件
ksh命令事件
csh命令事件
这些事件在/var/adm/cron/queuedefs文件里有定义。
当使用crontab命令来更新crontab文件时,更新信息会传送到cron守护进程中去。
9.6.1crontab文件格式
9.6.2crontab命令的允许使用控制
使用/var/adm/cron/cron.allow和cron.deny文件来控制。
9.6.3系统中的内务管理(huosekeeping)
系统中root用户有三个系统预定义的定时任务。(默认情况下没生效)
1、/usr/bin/skulker
该命令用于定时清理过时或不用的文件。比如/tmp下的文件、超过一定时限的、core文件、.out文件或ed.hup文件。该命令使用了find和xargs命令。
注意事先使用xargs –p命令来检查。
2、/usr/lib/spell/compress
不是Aix中compress命令,本脚本是用于压缩轮替程序日志。
3、/usr/lib/smdemon.cleanu命令
本脚本程序用于清理sendmail命令队列和维护/var/spool/mqueue/log文件。
注意如果/var/spool/mqueue目录没有存在,不要让本定时任务生效。


Chap 10 网络管理
10.1在系统启动阶段启动网络(服务)
在IPL阶段,init启动定义在/etc/inittab里的/etc/rc.tcpip脚本文件,该脚本使用使用SRC命令来启动定义好的要启动的网络服务。该脚本也可以单独用命令行来运行以启动网络服务。
通过rc.tcpip脚本启动的服务进程既有基于tcp/ip的服务,如inetd, gated, routed, namd, timed, rwhod等,也其它服务如:lpd, portmap, sendmail, syslogd。
注意:在一个系统中,routed和gated服务不能同时启动。
10.2关闭和重启tcp/ip服务进程
可以使用stopsrc和startsrc来启动和关闭服务进程。
10.2.1使用/etc/tcp.clean命令来关闭tcp/ip伺服进程
可以使用/etc/tcp.clean脚本来关闭tcp/ip伺服进程,它会关闭除portmap和nfsd的其它所有伺服进程并删除/etc/locks/lpd(tcp/ip的锁文件)
注意它不关闭portmap和nfsd伺服进程,要关闭这两个进程,使用stopsrc命令即可。
10.2.2重启tcp/ip伺服进程
使用refresh –s来重启伺服进程,当不要使用startsrc –g tcpip命令来启动所有的tcp/ip类的伺服进程,因为它包括routed和gated进程。
10.3系统启动时没有启动rc.tcipip
如果在/etc/inittab文件里删除或注释掉rc.tcpip一行,则意味着在系统启动时不启动任何服务进程(server applications)
注意:如果有图形界面,这移除rc.tcipip时记得要同时移除rc.dt一行,要不,当你登录时,图形终端会挂住。但这时你只能用终端直接连到控制台端口才能登录。
没有启动任何服务进程,但你同样可以作为客户端使用telnet和ftp命令来连接到其它服务端。
10.4 inetd伺服进程
10.4.1启动和刷新inetd
启动inetd时可以指定到别的自定义的配置文件,如果没有指定该参数,这默认使用/etc/netd.conf。
可以使用smit菜单、SRC或直接编辑/etc/inetd.conf来更改调整该配置文件。使用smit来更改时inetd会自动刷新,如果通过编辑/etc/inetd.conf,则要使用refresh –s inetd或kill –1(hup) InetdPID来刷新该服务进程。
10.4.2 inetd控制的子服务(subserver)
可以使用lssrc –ls inetd来列出inetd启动的子服务。
10.4.3 /etc/services文件
当编辑完/etc/services文件后,运行refresh –s inetd命令来使更改生效。(更改ftp端口试试。)
10.4.4停止inetd
使用stopsrc –s inetd命令,当inetd伺服进程停止后,之前由该子服务的进程不受影响。也就是说,原有的会话不受影响,当新的服务会话就不能建立啦。
(之前telnet会话不会中断吗?)
10.5 portmap伺服进程
portmap伺服进程转换远程的RPC(procedure call)程序号为网间端口号。
如果portmap伺服进程停止或突然中断,则所有的RPC服务必须重启。nfsd是个典型的RPC服务。
10.6 网络地址
(略)
10.7主机名解析
缺省的主机名解析顺序是:BIND/DNS(named), NIS, Local /etc/hosts file。
可以编辑/etc/netsvc.conf来定义解析顺序,比如,hosts = local, bind。也可以定义NSORDER环境变量来定义解析顺序,并且该环境变量可以取代netsvc.conf的定义,即使netsvc.conf和NSORDER是同时存在的。
Export NSORDER=bind, nis,local
10.7.1/etc/resolv.conf文件
/etc/resolv.conf文件定义域名解析协议的域名服务器信息,如果本文件不存在,则BIND/DNS被认为是无效或没有运行的(即使有配置起来),因此是不可用的。系统将会使用/etc/netsvc.conf或NSORDER环境变量指定的默认的解析顺序来进行域名解析。
/etc/resolv.conf文件例子:
nameserver        9.3.1.74
domian                itsc.austin.ibm.com
search                itsc.austin.ibm.com austin.ibm.com
10.7.2与/etc/resolv.conf相关的问题
当解析一个主机名时出现问题时,
1、确定/etc/resolv.conf中定义好正确的域名和域名解析服务器的地址。
2、确定域名服务器是可活动的,使用ping命令。
3、如果域名服务器是活动的,则使用lssrc –s named来检查是否有启动域名服务。
4、如果有启动syslogd伺服进程,可以查看系统日志文件。
10.7.3nslookup命令
使用nslookup来检查域名服务是否正常。
#nslookup  [IPAddress | HostName]
如果只有hosts文件,可以使用nslookup解析吗?
10.8配置新的网络适配卡
1、如果在系统启动时没能查看到cfgmgr的相关信息,而且系统没有自动找到新的适配卡,则要检查是否需要驱动软件包。
2、安装需要的设备软件包,使用smit devices。
3、使用diag –a 来查看新的适配卡已经加入到系统硬件配置里。
4、运行cfgmgr
5、使用lsdev –Cl ent1查看设备
6、使用smit inet(或smit mktcpip,但仅在第一次配置时使用)配置网络接口。
7、配置IP forwarding。
8、        使用smit route来添加路由。
10.8.1使用smit来配置网卡
如果需要改变网络的高级属性,包括网速、半双工、队列大小等,使用smit chgnet或smit chgtok来配置。
10.8.2配置网络接口(network interface)
使用smit tcpip来配置TCP/IP,可以使用smit inet来配置网络接口。(两者区别)
10.9启动IP转发(IP forwarding)
使用no –o ipforwarding=1来启动,默认为0,是关闭的,启动时会丢失。但在5.2使用smit tuning来配置,可以启动不丢失。
10.10添加网络路由
使用smit route(mkroute)来配置路由。也可以使用route add命令来添加路由,但重启后会丢失。(与上次问题?)
10.11通过smit改变IP地址
使用smit mktcpip既可以改变IP地址,也可以改主机名,如果只改IP地址时,可以使用smit chinet。
10.12ipconfig命令
语法:ifconfig Interface [ AddressFamily [ Address [DestinationAddress] ] [Parameters…] ]
其中AddressFamily可以使用:inet(默认), inet6(使用Ipv6), 或ns(Xerox Network System)
参数如下:
alias: 定义网络地址别名
delete: 删除指定的网络地址
detach: 删除网络接口
down: 使网络接口不活动
up:    使网络接口活动
netmask Mask: 指定网络掩码
mtu Value: 指定mtu值
10.12.1确定网络接口
可以使用#lsdev –Cc if或#ifconfig –a。
10.12.2激活一个网络接口
#ifconfig Interface [Address] [netmask Netmask] up
如:#ifconfig ent0 10.1.2.3 netmask 255.255.255.0 up
10.12.3使一个网络接口不活动
#ifconfig Interface down
10.12.4从一个网络接口中删除一个地址
#ifconfig Interface [Address] [netmask Netmask] delete
如:#ifconfig ent0 delete
注意:使用这个命令使并不使改接口处于不活动状态,也不会删除改网络接口
10.12.5删除一个网络接口
#ifconfig Interface detach
本命令在删除改网络接口同时也删除了分配给改网络接口的网络地址。如果要把改接口添加到系统中,或者添加一个新的接口,可以使用以下命令:
#ifconfig Interface
10.12.6为一个网络接口创建一个IP别名
可以为单个网络接口绑定多个网络接口,这对于一个Web服务器同时提供两个不同的初始的主页是非常有用的。
#ifconfig Interface Address [netmask Netmask] alias
如:#ifconfig ent0 10.1.2.3 netmask 255.255.255.0 alias
注意:这个命令将不会在系统ODM中创建相应的记录,所有必须加入到系统启动的脚本中。比如加入到/etc/inittab文件中。
使用#ifconfig ent0 10.1.2.3 netmask 255.255.255.0 delete来删除网络地址别名,注意如果没有指定是要删除哪个别名的,则系统默认会删除第一个网络地址,如果是这样的话,该网络接口的第一个别名就会变为该接口的主要的网络地址。因此,对于一个网络接口的多个别名,必须一一指定加以删除。
10.12.7改名网络接口的MTU值
MTU值范围:60-65536bytes per packet。
以太网MTU值为1500。
MTU值对于一个网络来讲很关键,可以使用lsattr –El Interface来查看网络接口的MTU值,使用ifconfig Interface mtu Value来改变该值。
#ifconfig ent0 mtu 12000
注意:如果该网络接口正在使用,该值不能被改变,而且同样一个网络里的系统必须拥有同样的MTU值。
10.13网络安全
10.13.1信任的和不信任的进程
需不需要用户认证。(ftpd, rexecd, telnetd /rshd, rlogind, tftpd)
10.13.2 $HOME/.netrc文件
用于ftp或rexec时使用的认证信息文件,必须属于该用户并且只有600的权限。
格式如下:
machine Hostname: 指定远程机器(需要登录过去的机器)名,必须定义在hosts文件或DNS里
login UserNmae: 指定远程主机用户名
password Password: 指定远程主机用户名的口令
account Password: 指定account 口令,只有在远程主机启用account时才有用。
Macdef MacroName: 定义一个ftp子命令的宏
如:
machine ftpserver login test password test12 macdef autoftp
bin
get /work/xtjk.sh
quit
10.13.3/etc/hosts.equiv和$HOME/.rhosts文件
定义了远程主机或用户帐号可以不要提供口令就可以在本地主机上使用远程命令。
如果远程命令是root用户发起的,则/etc/hosts.equiv是无效的而只认识/.rhosts文件的。
如果有组或其它用户对/etc/hosts.equiv或$HOME/.rhosts有写权限,该文件将会是无效的,因此,不管是那个文件,其权限都必须是600。
格式:[+|-] Hostname [+|-] UserName or @Netgroup
其中Netgroup的NIS中的概念。
注意:是按顺序从头到底去读的,所有要注意放置位置
如:
toaster
machine bob
+lester
tron –mike
tron
10.13.4securetcpip命令
该命令使得所有的不信任的命令和服务包括rcp, rlogin, rlogind, rsh, rshd ,tftp和tftpd无效。同时不能使用.netrc文件。
在/etc/security/config文件中添加以下一行:
tcpip:
    netrc = ftp,rexec
在运行securetcpip命令之前,使用killall命令来停止所有的网络服务。
10.13.5匿名ftp
    运行/usr/samples/tcpip/anon.ftp脚本。
10.14ftp日志
通过以下步骤利用syslog功能来启动ftp日志
1、编辑/etc/syslog.conf添加以下一行
daemon.info FileName
其中FileName为记录ftp活动的日志,包括匿名ftp。
2、刷新syslogd服务
3、编辑/etc/inetd.conf,把ftpd改为ftpd –l。
4、刷新inetd服务
这时就可以看到ftp活动开始记录日志啦
10.14uname命令
uname –n或uname –x命令
10.15基本网络问题判断
要注意检查时候paging space满啦,或者是文件系统满啦。

Chap 11网络文件系统管理
NFS是独立于机器类型、操作系统和网络架构而是通过使用RPC(远程程序调用)。
11.1NFS服务
1、几个概念
服务端(Server),客户端(Client),Export、mount。
2、NFS提供的服务
Mount: 通过在服务端启用/usr/sbin/rpc.mountd伺服进程,在客户端使用mount命令,mounted伺服进程是一个RPC来回应客户端的请求
Remote File access:通过在服务端启用/usr/sbin/nfsd和在客户端启用/usr/sbin/biod,来出来客户端对文件的请求。但客户端一个用户要来读或写一个在服务器端的文件时,biod伺服进程发送这个请求到服务端。
Boot parameters: 通过在服务端启用/usr/sbin/rpc.bootparamd伺服进程来提供无盘SunOS客户端的启动参数。
PC authentication: 通过在服务端启动/usr/sbin/rpc.pcnfsd来提供PC-NFS的用户认证服务
一个NFS服务是无状态的(stateless),也就是说,NFS的传输是原子级的,一个单一的NFS传输对应了一个单一完整的文件操作。
11.2计划、安装和配置NFS
配置NFS:
1、配置在每一个系统上(不管是服务端还是客户端)启动NFS
使用smit mknfs或mknfs命令
mknfs命令参数:
-B:即现在就启动NFS服务进程同时在系统重启时也启动,它会在/etc/inittab文件中创建一条记录来执行/etc/rc.nfs。
-I: 在/etc/inittab文件中创建了启动NFS服务的记录
-N:当前立即启动NFS,但重启时不启动。
2、如果要使用命令行来启动NFS伺服进程,使用startsrc –g nfs。
注意,如果/etc/exports文件没有存在,则nfsd和rpc.mountd伺服进程不会启动。这时可以通过touch /etc/exports先创建一个空白的exports文件
11.2.1Exporting NFS目录
使用smit
1、先用lssrc –g nfs检查NFS伺服进程
    2、使用smit mknfsexp来设置
    3、设置完后,会刷新/etc/exports文件。
    4、把相关信息发送到内核上
    #/usr/sbin/exportfs –a
    5、确定是否已经export出去
    #showmount –e Croom     
上述smit的操作也可以用编辑/etc/exports文档来代替,其它步骤不变。
如果要临时export一个文件系统,可以不改变/etc/exports文件,而直接采用exportfs命令来操作。
#exportfs –i  /dirname
对于客户端,要采取一下步骤来确定可以进行服务端export出来的文件系统
    1、确定NFS是默认的远程文件系统
    #vi /etc/vfs
    nfs 2 /sbin/helpers/nfsmnthelp none remote
    2、启动NFS伺服进程
11.2.2Unexporting 一个NFS文件系统(目录)
    1、使用smit rmnfsexp菜单
2、使用编辑exports文件的方式
编辑保存后,使用exportfs –u dirname来刷新
注意exportfs命令的使用。
11.2.3mount一个NFS文件系统(目录)
有三种类型:预定义、显式的、自动的
预定义即在/etc/filesystems文件上先定义好,在系统启动时自动mount这些文件系统。
显式的需要root用户,短期需要使用时才mount上来。
自动的由automount命令控制,使得AutoFS系统扩展内核在客户端需要访问该NFS文件系统时自动把该文件系统mount上来。
NFS mounting过程:
1、当服务端系统启动时,/etc/rc.nfs脚本执行exportfs命令,该命令读取/etc/exports文件并告诉内核哪些目录需要被export。这时rpc.mounted和好几个nfsd(默认下是8个)伺服进程启动。
2、当客户端启动时,也是通过/etc/rc.nfs脚本启动好几个biod伺服进程(默认8个)
3、rc.nfs脚本接着执行mount命令,读取/etc/filesystems文件,并且在它和服务端建立通讯联系,这个过程也叫绑定(binding)
4、当客户端发起mount请求时,服务端通过rpc.mount接收客户端请求,如果运行该请求的话,则向客户端内核发送一个标记叫做文件柄(file handle)
5、接着客户端通过记录相关一个mount记录把该文件柄绑定到该mount point上。
创建一个预定义的NFS mounts
注意:在创建时要注意设置以下参数,定义成bg和intr(interruptible)。如果设置成foreground和non-interruptible则在系统重启时,如果服务端或网络有问题时,则客户端会被挂住。
使用smit mknfsmnt来操作,注意一些参数设置(也是在/etc/filesystems中的options项)
创建一个显式的NFS文件系统:
创建一个自动mount的NFS文件系统:
1、确定服务器端已经把该文件系统export出来,使用#showmount –e Server1
2、创建一个AutoFS map文件,在/usr/samples/nfs中有例子。
3、在客户端要加载AutoFS内核扩展并且启用automountd,有两种办法
a、#starsrc –s automountd
b、使用automount命令
   #/usr/sbin/automount –v /backup /tmp/mount.map
4、停止automountd,可以使用
#stopsrc –s automountd
11.3NFS服务端和客户端的管理
11.3.1查看NFS伺服进程的情况
#lssrc –g nfs
11.3.2改变一个exported文件系统的属性
可以使用smit或编辑/etc/exports文本文件的两种方式,当在更改前,都要先把该文件系统unexport掉,改动完成后,再把它export出去。
1、#exportfs –u /dirname
2、使用smit chnfsexp或vi /etc/exports文件
3、#exportfs /dirname
11.3.3umount一个NFS文件系统
使用umount即可
11.4相关文件、命令和伺服进程
11.5问题断定
11.5.1确定NFS问题检查列表
1、检查网络连接情况
2、检查客户端是否有启动inetd、portmap和biod伺服进程。
3、检查客户端有有效的mount安装点。
4、使用rpcinfo命令检查服务端是启用的并且是在运行的
#/usr/bin/rpcinfo –p server_name
5、检查服务器端的伺服进程有启动,并且文件系统是export出去的,可以使用一下脚本命令
        #/usr/bin/rpcinfo –u server_name mount
        #/usr/bin/rpcinfo –u server_name portmap
        #/usr/bin/rpcinfo –u server_name nfs
    6、检查服务器端的/etc/exports文件
    #showmount –e server_name
11.5.2检查网络连接
使用nfsstat 命令来查看
11.5.3NFS错误信息
1、Hard-mounted和sofe-mounted问题
如果网络或服务端有问题,硬连接会提示“still trying”,而软连接会提示“Connection timed out”
2、bad sendreply错误信息
如果transmit buffer不够,会提示“nfs_server:bad sendreply”
3、服务端没有响应
4、远程mounting问题(客户端)


Chap 12系统性能
12.2系统性能概述
相关命令:iostat, vmstat, netstat, nfsstat, ps, lsattr, lslv, nice, no, renice, reorgvg, sar, schedtune, svmon, time, tprof, trace
12.3基本系统工具
12.3.1使用vmstat命令
vmstat [-f] [-i] [-s] [PhysicalVolume…]  [Interval [Count] ]
-f:显示自从系统启动以来的fork数
-i:显示自从系统启动以来每个设备的中断数
-s:显示自从系统启动以来包括交换情况信息
PhysicalVolume:指定一到四个物理硬盘,显示该物理盘的transfer情况。
由于系统使用很大的一块实际内存作为文件系统数据的缓存(cache),所有fre项可能会很低但并非不正常。
12.3.2iostat命令
iostat [-d | -t]  [PhysicalVolume…. ] [Interval [count] ]
-d:只显示磁盘的使用情况,不能和-t参数一块使用
-t:只显示TTY和CPU的使用情况,不能和-d参数一块使用
注意:第一列显示只系统启动以来的统计信息。
例如:
#iostat –d 2 6   显示所有磁盘信息
12.3.3netstat命令
1、netstat -i
2、netstat –r
12.3.4另外一下性能相关命令
svmon, sar, tprof(跟踪CPU的活动),schedtune
12.4控制系统资源使用
12.4.1使用nice和renice命令
#nice –n 15 cc –c *.c    优先级降低到15
#renice –n 5 16304      优先级降低了5
12.5性能分析
分析是否使cpu瓶颈或者是内存瓶颈问题,也由可能是其它方面瓶颈,如磁盘IO。
12.5.2 CPU Idle时间计算
要把wa项也计算如CPU空闲时间内。
12.5.3计算交换率
    pagein/pageout(pi/po)

Chap 13用户管理
13.1概述
三种类型组:用户组,系统管理组(即system group),系统定义的组(如staff组等)
13.2用户管理相关命令
mkuser, rmuser, lsuser, chuser(改变除用户口令外的所有其它用户属性),passwd
chsec(改变安全相关设置),login, who, last, dtconfig(设置桌面系统自动启动)
13.3用户管理相关文件
13.3.1 /etc/security/environ
设置用户的环境属性,有mkuser命令来生成相关的节段(stanza),初始的属性值是根据/usr/lib/security/mkuser.default文件来设置。一般使用默认缺省值。
13.3.2 /etc/security/lastlog
记录最后一次成功和不成功登录的信息(包括时间、终端号、远程登录的主机名),还包括不成功登录的累计次数。也是有mkuser命令创建用户时创建相关的节段,并有login命令来刷新其中的记录。
13.3.3 /etc/security/limits
为每个用户指定进程资源。也是有mkuser、chuser、rmuser命令时来创建并维护。在smit user中也有。
13.3.4 /etc/security/user
包含用户扩展的属性。其初始缺省设置是根据/usr/lib/security/mkuser.default文件来设置的。
13.3.5 /usr/lib/security/mkuser.default
该文件指定一个新用户的缺省属性,包含两个节段:user和admin。如果使用mksuer时指定-a属性则指定了使用admin的属性。该两节段分别指定user和admin的主要组(pgrp),组别,shell和home目录。
13.3.6 /usr/lib/security/mkuser.sys
是一个可执行的命令脚本,由mkuser命令调用,调用它时创建了包含由正确属主和组别的用户根目录,并且为用户的shell创建正确的porfile。
13.3.7 /etc/passwd
密码位:*和!,使用passwd或pwdadm可以使密码位由*变为!,并且这时用户才可以根据密码来登录系统。使用chuser可以改变除密码以外的其它用户属性,使用chfn可以改变/etc/passwd文件中某用户的说明段,使用chsh可以改变用户的shell。
13.3.8 /etc/security/passwd
如果还没有用passwd命令设置口令的用户,则会显示password = *的节段。
13.3.9 /etc/securiyt/login.cfg
该文件包含login的配置信息和用户的认证信息。由三个类型的节段,port、authentication和user configuration。
好好查看本文件
13.3.10 /etc/utmp, /var/adm/wtmp, /etc/securiyt/failedlogin
/etc/utmp:记录用户登录该系统,使用who –a。如果文件被破坏,则使用who命令不能显示输出
/var/adm/wtmp:记录用户登录的连接时间,使用last。
/etc/security/failedlogin:记录不成功登录的尝试。
13.3.11 /etc/mtod
登录提示信息
13.3.12 /etc/environment
一般包括这些属性:
HOME,LANG(由系统安装时设置在本文件中),NLSPATH(信息目录文件的全路径),LPDEST(指定远程打印所使用的打印机),EDITOR,TZ
13.3.13 /etc/profile和$HOME/.profile
13.4 用户管理任务
13.4.1添加一个用户帐户
用户帐户名:要少于8字节字符串。使用mkuser或smit mkuser来生成一个用户帐户后,还要用passwd来为该帐户在/etc/security/user生成相应的加密的密码节段,也才能使的该用户可以登录。
13.4.2生成或改变密码
可以使用passwd –f来改变用户设置在/etc/passwd文件中的全名。
13.4.3改变用户属性
13.4.4显示用户属性
使用lsuser命令,可以显示某用户属性,如果加入ALL参数,可以显示所有用户属性。如果使用NIS,则一些属性可以不能在lsuer命令中显示出来。
#lsuer ALL
#lsuer smith
#lsuer –f –a id pgrp root
13.4.5删除一个用户帐户
使用rmuser或smit rmuser,如果加入-p参数,则它还将删除该用户在/etc/security/passwd文件中的密码相关认证信息。
13.4.6改变用户的安全属性
使用chsec命令可以改变用户的安全属性,这些属性设置文件一般位于/etc/security目录下,如/etc/security/environ、group、lastlog、limits、login.cfg、mkuser.default、passwd、portlog和user等文件。
如下:
1、设置/dev/tty0端口自动锁住,如果在1分钟内不成功登录尝试超过5次
#chsec –f /etc/security/login.cfg –s /dev/tty0 –a logindisable=5 –a logininterval=60
2、设置所有用户只能在8:00-17:00才能登录
#chsec –f /etc/security/user –s default –a logintimes=:0800-1700
13.4.7 显示当前登录用户
使用who命令,
#who –r 显示运行级别
#who –p 显示由init生成(spawn)的子进程。
13.4.8阻止用户登录
可以在/etc目录下设置nologin文件来使得用户不能登录该系统,并同时显示该文件的内容。如果该文件存在,则root用户也不能登录,只有等到系统重启后,会自动删除该文件,这时系统才能重新登录
13.4.9改变用户的登录shell
使用chsh命令。
13.4.10改变shell提示符
    PS1, PS2,还有PS3
13.5启动桌面环境
在命令行中启动桌面环境:
#xinit /usr/dt/bin/Xsession
1、设置自动启动桌面环境
#dtconfig –e 或smit dtconfig
设置可以自动启动桌面环境
#dtconfig –d则关闭指定启动桌面环境
2、手工启动桌面环境
#/usr/dt/bin/dtlogin –daemon
3、手工停止桌面环境
如果你已经启动了桌面环境,想把它关闭
#cat /var/dt/Xpid
#kill –term process_id
即把所有桌面环境相关进程杀掉
13.5.1文件系统满和桌面环境的启动问题
如果/home文件系统满,可能启动不了桌面环境


Chap 14 打印系统
    本章讨论Aix的打印子系统而不讨论Aix 5L中的SRV4打印系统
几个概念:
Print job
Queue
Queue device:一个打印队列可以跟着不止一个的个队列设备(queue device)
Qdaemon
Print spooler
提供了好多个具有同样功能的打印命令

提交打印任务        打印任务状态        取消打印任务
enq        enq –a        enq –x
qprt        qchk        qcan
lp        lpstat        lprm
lpr        lpq       
14.1创建一个新的打印队列
如果事先没有创建好打印机,则在创建打印队列时会让你选择新建一个打印机
使用smit,选址print spooling。
14.2打印机配置文件
打印机的配置信息存放在/etc/qconfig文件中,该文件不仅包含系统中定义的每一个打印队列,还可以使系统管理员识别每个队列的作用。也可以通过修改该文件而不用使该spooler停下。
该文件一般包含两段,一段定义队列,另一段定义打印设备,即打印机。
14.3控制打印队列
1、使用lpstat命令,可以查看队列任务的状态的信息
#lpstat
2、使用qchk
#qchk
3、使用lpq命令
#lpq
4、使用lpr命令来提交打印任务,通过使用spooling伺服进程来打印已在参数中指定命名的文件
#lpr /etc/hosts
#lpstat
14.3.1编辑/etc/qconfig
如果通过其它方式没办法删除一个打印定义,则可以通过编辑本文件。
14.3.2编辑/etc/qconfig当任务正在进行时
当任务正在进行时,千万不要编辑/etc/qconfig。
因为它会检查/etc/qconfig和有该文件生成的二进制文件/etc/qcofnig.bin,如果/etc/qconfig文件的版本更新,qdaemon将不会再接受任何新任务,包括当前的任务。因此可能导致该spooler挂住。
14.4停住打印队列
使用enq –D参数
#lsstat –v lpforu     查看lpforu打印队列的情况
#enq –D –P ‘lpforu:lp0’    停止打印队列lpforu上的所有打印任务,通过-P参数指定打印队列
#lsstat –v lfforu      这时可以看到打印队列的状态由原来的RUNNING改变为DOWN
14.5启动打印队列
使用enq –U,用法和上同。
14.6删除一个打印任务
可以使用一下命令行其中一个
#qcan –P lpforu –x 3
#lprm –P lpforu 3
#enq –P lpforu –x 3
#cancel 3
14.7如果检查打印池(print spooler)
使用lsstat或者enq命令。
#lpstat –p lpforu
#lpstat –u “root”
14.8设置打印机的超时时间
使用smit spooler来改变打印机连接属性。中由一项Printer TIME OUT period。
14.9打印诊断基本检查单
1、检查qdaemon是否再运行
2、检查系统日期是正确的,尤其是/etc/qconfig.bin和/etc/qconfig的创建时间
3、检查/etc/qconfig是否链接到/usr/lpd/qconfig文件。
4、检查/tmp文件系统空间
5、如果只有root用户可以打印,则检查/tmp目录的权限,还有enq等命令的权限。
6、检查远程主机是网络连通的,通过ping hostname等。


Chap 15sendmail和e-mail
15.1概述
邮件系统是一个网间邮件分发工具,它包括一个用户接口,一个信息路由程序和一个信息分发程序(或mailer)
15.2mail守护进程
Sendmal daemon:一个信息路由程序把信息路由到他们的目的地。就是sendmail命令,它通过配置文件/etc/sendmail.cf、/etc/alias和/etc/sendmail.nl来执行必要的路由。
Syslogd deemon:记录sendmail活动的日志
15.2.1-4启动、停止、刷新和检查sendmail守护进程的状态
使用startsrc –s(或直接使用/usr/lib/sendmail),stopsrc –s, refresh –s, lssrc –s。
15.2.5自动启动sendmail守护进程
通过编辑/etc/rc.tcpip脚本,来自动启动sendmail。
15.2.6确定sendmail的时间间隔
sendmail可以指定每隔多长时间来出来邮件队列,默认情况下是30分钟,在rc.tcpip中可以通过定义qpi=40m,来指定该时间
但只有在系统重启时有效,如果需要,可以使用命令行带-q参数来指定该时间
15.2.7使用命令行确定sendmail的时间间隔
使用-q参数,默认计时单位时分钟,所有可以不要指定m。
如:#/usr/sbin/sendmail –q15
    #/usr/sbin/sendmail –q15h
15.3邮件队列目录
位于/var/spool/mqueue
15.3.1打印该邮件队列
可以使用mailq命令,或者也可以使用sendmail –bp命令
15.3.2邮件队列文件
由四种类型邮件队列文件:数据文件(df开头),控制文件(qf开头)、临时文件(tf开头),传输文件(xf开头)。
15.3.3强制邮件队列运行
#/usr/sbin/sendmail –q –v
15.3.4移走邮件队列
15.4邮件日志
使用syslog,在/etc/syslog.conf文件中编辑:
mail.debug                /var/spool/mqueue/log
15.4.1管理邮件日志文件
可以使用/usr/lib/smdemon.cleanu脚本文件,该文件强制sendmail命令进行队列柄维护四个相对旧一点的日志文件,并轮循使用。
15.4.2记录mailer状态日志
创建/var/tmp/sendmail.st,则sendmail自动更新该文件。
15.4.3显示mailer信息
使用/usr/sbin/mailstats命令。
15.5mail别名和向前分发(forwarding)
15.5.1创建和修改本地系统别名
编辑/etc/aliases文件,添加一下一行
programmer:john, smith, mary@h70a
15.5.2创建别名数据库
使用sendmail或newaliases命令来创建别名数据库:/etc/aliases.dir和/etc/aliases.pag
#/usr/sbin/sendmail –bi
#newaliases
这样以后,就可以使用mail programmer来把邮件发送到john,smith,和h70a系统上的mary。
15.5.3使用/etc/aliases来向前分发邮件
root:smith, bob@h70a
但这样,root用户就不能受到任何邮件,所有,使用以下格式
root:\root,smith, bob@h70a
注意,反斜杆不能丢掉,或者会产生无限循环。
这样,也是要使用/usr/sbin/sendmail –bi或newaliases命令来更新,使更改生效。
15.3.4使用$HOME/.forward文件
直接编辑该.forward文件即可生效。如
smith, mary@h70a
如果要john要自己保留一份,则使用
\john, smith, mary@h70a
不需要使用sendmail –bi或newaliases来刷新,就可以直接生效。
15.5.5使得邮件分发到空设备
这样可以使得某些用户不会生成邮件,可以使用编辑/etc/alias或$HOME/.forward方式来实现。
User:/dev/null
或在.forward文件中,编辑加入/dev/null即可。
15.6邮件转址
15.6.1转到当前系统其它用户上
#mail smith
15.6.2转到同一网络其它系统上
#mail jihn@h70a
15.6.3转到不同网络。
15.7存储邮件
系统邮箱:位于/var/spool/mail目录下,每个用户一个文件,可以使用mail来查看
个人邮箱:位于$HOME/mbox,当使用mail读取个人邮件后,邮件转存到这里,可以使用mail –f来查看。
dead.letter:邮件被不正常中断,位于$HOME/dead.letter

论坛徽章:
0
2 [报告]
发表于 2005-05-16 23:51 |只看该作者

191学习笔记(全)--要求加精

good!

论坛徽章:
0
3 [报告]
发表于 2005-05-17 08:19 |只看该作者

191学习笔记(全)--要求加精

谢谢!!!!

论坛徽章:
0
4 [报告]
发表于 2005-05-17 10:16 |只看该作者

191学习笔记(全)--要求加精

good

论坛徽章:
0
5 [报告]
发表于 2005-05-17 10:35 |只看该作者

191学习笔记(全)--要求加精

收了,謝謝

论坛徽章:
0
6 [报告]
发表于 2005-05-17 10:46 |只看该作者

191学习笔记(全)--要求加精

顶!
谢谢楼主

论坛徽章:
0
7 [报告]
发表于 2005-05-17 10:47 |只看该作者

191学习笔记(全)--要求加精

收到了,谢谢!

论坛徽章:
0
8 [报告]
发表于 2005-05-17 11:58 |只看该作者

191学习笔记(全)--要求加精

非常感谢楼主,这么好的贴子,辛苦啦!!!收阅了!!多谢!

论坛徽章:
0
9 [报告]
发表于 2005-05-17 13:13 |只看该作者

191学习笔记(全)--要求加精

辛苦了,谢谢

论坛徽章:
0
10 [报告]
发表于 2005-05-17 13:56 |只看该作者

191学习笔记(全)--要求加精

详细,辛苦了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP