电脑技术学习

Solaris高级系统管理员指南 (1)

dn001
目 录
第1章、前言
1.1了解超级用户状态
1.1.1成为超级用户(su)
1.1.2退出超级用户状态
1.1.3以root注册
1.2与用户通信
1.2.1在注册时显示系统专用信息
1.2.2将信息发送给单个用户
1.2.2.1发送一个短消息给一个单独的用户
1.2.2.2将作为一个文件的消息发给个别用户
1.2.3将消息发送给一个系统或网络中的所有用户
1.2.4通过电子邮件发送消息
1.3启动和关闭系统
1.3.1选择init状态
1.3.1.1查看系统运行级
1.3.1.2使用掉电状态,运行级0
1.3.1.3使用系统管理员状态,运行级1
1.3.1.4使用多用户状态,运行级2
1.3.1.5使用远程资源共享状态,运行级3
1.3.1.6使用替换多用户状态,运行级4
1.3.1.7使用交互重引导状态,运行级5
1.3.1.8使用重引导状态,运行级6
1.3.1.9使用单用户状态,运行级s或S
1.3.1.10改变运行级
1.3.2选择所用的关闭命令
1.3.2.1 shutdown
1.3.2.2 telinit和init
1.3.2.3 halt
1.3.2.4 reboot
1.3.3 引导系统
1.3.3.1 引导到多用户状态
1.3.3.2 引导到单用户状态
1.3.3.3交互式引导
1.3.3.4查看引导信息
1.3.3.5增加新的硬件后引导系统
1.3.3.6退回引导进程
1.3.4关闭系统
1.3.4.1关闭一个多用户系统
1.3.4.2关闭系统:可选方式
1.4监视进程
1.4.1 ps命令报告的内容
1.4.2使用ps报告
1.4.3杀死进程
1.5基本管理工具
1.5.1经常使用的命令
1.5.1.1在文件系统中移动
1.5.1.2查看在文件系统中所处的位置
1.5.1.3改变目录
1.5.1.4查看文件的有关信息
1.5.1.5显示文件信息
1.5.1.6查找一个文件
1.5.1.7查看一个文件的类型
1.5.1.8查看文件中的信息
1.5.1.9查找文件中的字符串
1.5.1.10查看文件
1.5.1.11浏览文件
1.5.1.12查看文件尾
1.5.1.13查看文件头
1.5.1.14改变文件的所有权和许可权
1.5.1.15改变文件组
1.5.1.16设置或显示系统环境
1.5.1.17定义Bourne和Korn shell环境变量
1.5.1.18定义C shell环境变量
1.5.1.19显示环境变量的设置
1.5.1.20使用PATH变量
1.5.1.21设置Bourne和Korn shell路径
1.5.1.22设置C shell路径
1.5.2使用管理工具
第2章、基本OS命令
2.1查找用户信息
2.1.1确定系统中有谁注册
2.1.1.1使用who命令
2.1.1.2使用finger命令
2.1.1.3使用rusers -1命令
2.1.1.4使用whodo命令
2.1.2检查用户的用户号和组号(id命令)
2.2查寻环境信息
2.3创建和编辑文件
2.3.1使用cat命令
2.3.2使用touch命令
2.3.3文件拷贝(cp)或改名(mv)
2.3.4文本编辑器的使用
2.3.5 vi的使用
2.4命令组合及输出重新定向
2.4.1在同一命令行里键入多个命令
2.4.2输出重新定向(<>)
2.4.3组合命令(|)
2.5使用手册
2.5.1显示手册(man)
2.5.2找命令节号(whatis、man)
2.6查阅磁盘信息
2.6.1显示磁盘空间的信息(df -k)
2.6.2判别某文件系统是否为本地文件系统(df)
2.6.3找出某种类型已安装的文件系统(df -F)
第3章、设备管理
3.1磁带的使用
3.1.1磁带设备的命名习惯
3.1.1.1使用缺省密度规定驱动器号
3.1.1.2为磁带机指定密度
3.1.1.3指定"不倒带"选项
3.1.1.4不同磁带控制器和介质的设备名缩写
3.1.1.5 1/2英寸卷绕式非SCSI内接(Rack mounted)磁带机
3.1.1.6 1/4英寸SCSI盒式和1/2英寸前部装入的卷绕式磁带机
3.1.1.7 螺线扫描磁带机
3.1.2读写磁带的命令
3.1.2.1拉紧磁带
3.1.2.2倒带
3.1.2.3列出磁带机状态
3.2 磁带与软盘操作
3.2.1 tar命令
3.2.1.1向磁带写文件(tar)
3.2.1.2列出磁带上的文件(tar)
3.2.1.3向磁带上增加文件(tar)
3.2.1.4从磁带中析取文件(tar)
3.2.2cpio命令
3.2.2.1将某目录下的所有文件拷入磁带(cpio)
3.2.2.2列出磁带上的文件(cpio)
3.2.2.3析取磁带上所有文件(cpio)
3.2.2.4自磁带中析取个别文件(cpio)
3.2.2.5软盘的使用
3.2.3软驱设备名
3.2.4ufs文件系统的软盘
3.2.4.1格式化ufs软盘
3.2.4.2自软驱中取出软盘
3.2.4.3将ufs文件拷入单张格式化过软盘
3.2.4.4列出软盘上的文件
3.2.4.5向一个格式化好的软盘上附加文件(tar)
3.2.4.6从软盘上拷出文件(tar)
3.2.4.7自软盘上拷出bar格式的文件(cpio)
3.2.5使用多张软盘存档
3.2.5.1在软盘上创建一个ufs文件系统(newfs /dev/rdiskette)
3.2.6pcfs(Dos)文件系统的软盘
3.2.6.1 格式化pcfs(DOS)文件系统软盘
3.2.6.2安装pcfs软盘
3.2.6.3卸下pcfs软盘
3.3硬盘命名管理
3.3.1硬盘命名习惯
3.3.1.1带有总线控制器的硬盘的使用
3.3.1.2带有直接驱动器的硬盘的使用
3.3.2检查硬盘使用状况
3.3.3检查硬盘信息(Prtvtoc)
3.3.3.1将文件存档
3.3.3.2将硬盘上文件拷出
3.3.3.3修复坏块
3.3.3.4重新格式化硬盘
3.3.3.5换下旧硬盘
3.3.3.6加入错误表对硬盘进行格式化、分区及标记
3.3.3.7重建文件系统(newfs)
3.3.3.8在临时安装点安装文件系统(mount)
3.3.3.9向文件系统转储文件(ufsrestore)
3.3.3.10自临时装入点拆卸文件系统(umount)其方法如下:
3.3.3.11检查文件系统的不一致性(fsck)
3.3.3.12对恢复文件系统做0级备份
3.3.3.13在永久安装点安装文件系统(mount)
第4章、文件系统管理
4.1文件系统类型
4.1.1磁盘文件系统
4.1.2网络文件系统
4.1.3伪文件系统
4.1.3.1临时文件系统(tmpfs)
4.1.3.2循环文件系统(lofs)
4.1.3.3进程文件系统(procfs)
4.1.3.4别的伪文件系统
4.2 SunOS 5.x缺省的文件系统
4.3虚拟文件系统表(/etc/vfstab)
4.3.1 文件系统表项的建立
4.4文件管理命令
4.4.1普通命令语法规则
4.4.2普通文件系统命令和特别文件系统命令手册
4.4.3利用文件系统命令确定文件系统类型
4.4.4文件系统类型
4.5如何使文件系统有效
4.5.1安装与拆卸
4.5.1.1安装与拆卸文件系统命令
4.5.1.2查找已安装的文件系统
4.5.1.3安装/etc/vfstab文件中的全部文件系统
4.5.1.4安装特定类型的文件系统
4.5.1.5安装单个文件系统(mount)
4.5.1.6拆卸所有的远程文件系统(umountall -F nfs)
4.5.1.7拆卸个别的文件系统(umount)
4.5.2自动安装程序
4.5.3共享服务器文件
4.6检查文件系统的数据一致性(fsck)
4.6.1决定文件系统是否需检测
4.6.2以交互方式检测文件系统
4.7备份和恢复文件系统
4.7.1用QIC-150盒式磁带备份文件系统(ufsdump)
4.7.1.1实现增量备份
4.7.2恢复备份文件系统
4.7.2.1决定使用哪一备份带
4.7.2.2恢复全部备份
4.7.2.3交互式恢复文件
4.7.2.4从备份带中恢复单个文件( ufsrestore)
第5章、管理网络服务
5.1检查远程系统状态
5.1.1确定一个远程系统已运行了多长时间
5.1.2确定一个远程系统是否在运行(pingruprpcinfo-p)
5.2注册到一个远程系统(rlogin)
5.3系统之间传送文件(rcp、ftp)
5.3.1使用RCP命令
5.3.2使用文件传送程序(ftp)
第6章、管理用户帐号和用户组
6.1增加和管理用户帐号
6.1.1增加用户帐号
6.1.1.1编辑Passwd数据库
6.1.1.2定义用户组
6.1.1.3建立主目录(home Director)
6.1.1.4自动安装目录
6.1.1.5用nfs安装主目录
6.1.1.7定义初化文件
6.1.1.8建立用户的邮件帐号
6.1.1.9建立口令
6.1.2管理用户帐号
6.1.2.1修改用户帐号
6.1.2.2取消用户帐号
6.1.2.3冻结用户帐号
6.2设置和管理用户组
6.2.1设置Group数据库中的域值
6.2.1.1设置组名(Group Name)域
6.2.1.2设置Group ID域
6.2.1.3设置成员表域
6.2.2建立缺省的Unix用户组
6.2.3建立新的组
6.2.4修改或删除用户组
6.2.4.1修改某个组
6.2.4.2删除某个组
第7章、UNIX的shell命令
7.1各种shell的公共命令
7.1.1设置某种缺省shell
7.1.2在命令行中改变shell类型(sh,csh,ksh)
7.1.3从shell解释器中退出(exit)
7.1.4清除一个shell窗口(clear)
7.2标准shell
7.2.1标准shell的初始文件
7.2.2定义标准shell的环境变量
7.3 C shell
7.3.1C shell的初始文件
7.3.2C shell环境变量的定义
7.3.3建立C shell的别名
7.3.4设置C shell的历史功能
7.3.5使用C shell历史功能
7.3.6设置C shell的退格键(stty erase)
7.3.7新命令的嵌入
7.3.8Cshell历史命令的编辑
7.4 Korn shell
7.4.1Korn shell的初始化文件
7.4.2Korn shell的选择项
7.4.3创建Korn shell的别名
7.4.4用Korn shell的联机编辑器编辑命令
7.4.5设置Korn shell的历史
7.4.6显示Korn shell的历史命令
7.4.7使用Korn shell的历史命令
7.4.8编辑Korn shell的历史命令
第8章、管理系统
8.1显示系统专有信息
8.1.1确定主机ID号(sysdef -h)
8.1.2确定硬件类型(uname -m)
8.1.3确定处理机类型(uname -p)
8.1.4确定OS版本号(uname -r)
8.1.5显示系统配置信息(prtconf)
8.1.6确定系统已经运行了多长时间
8.1.7确定系统的日期和时间(date)
8.1.8设置系统的日期和时间
8.1.9改变系统的时区(/etc/TIMEZONE)
8.2配置附加的交换空间(mkfile,swap)
8.3创建一个本地邮件别名(/etc/mail/aliases)
第9章、文件存取问题分析
9.1 诊断与查找路径有关的问题
9.1.1显示当前查找路径
9.1.2为Bourne和Korn shells设置路径
9.1.3Source Bourne和Korn shell的初始化文件
9.1.4为C shell设置路径
9.1.5Source C shell初始化文件
9.1.6检查当前的查找路径
9.1.7执行一个命令
9.2分析与权限和所有权有关的问题
9.2.1改变文件的所有权
9.2.2改变文件的权限
9.2.3改变文件组的所有权


第1章、前言
本手册主要供Solaris系统管理员使用,所提供的内容包含SUN OS操作系统系统的安装、环境的建立及重要文件的创建,以及系统管理员在网络系统环境下如何建立、维护、管理网络系统下的工作环境,还包括系统管理的日常使用命令、主要命令、文件的索引等。
本章将介绍:系统管理员的职责、了解超级用户状态、如何与用户通信、启动和关闭系统、进程管理、基本管理工具。
SunOS 5.x操作系统,是Sun公司所推出的Solaris 2.x软件系统环境的主要组成部份,Solaris 2.x可运行于SPARC和Intel硬件平台,是一个支持对称式多处理机的UNIX系统环境。
系统管理员的职责
系统管理员的职责是确保一个独立(Standalone)系统或网络上的一组系统能正常运行(主要指软件)。 不同领域的系统管理员,其责任也不相同,一个系统管理员可能在一个或多个领域是专家,而在别的领域却显生疏。
下面列出本手册所描述的系统管理员的工作:
1、 管理设备
*磁带机的使用
*格式化磁盘
*监视盘的使用
2、 了解服务访问机制
*建立一个双向调制解调器(modem)
3、 管理文件系统
*安装或拆卸文件系统
*备份和恢复文件或文件系统
4、 管理网络服务
*查找网络信息
*系统间传送文件
*管理NIS+数据库
5、 管理打印服务
*设置一个打印客户和打印服务器
*使用打印命令
6、 管理用户和用户组
*增加用户
*删除用户
*改变用户信息
*建立新组帐号
7、 了解shell
*使用Generic shell命令
*使用Bourne shell命令
*使用C Shell命令
*使用Korn shell命令
8、 管理系统
*查找系统信息
*建立局部邮件别名
*配置额外的交换空间(swap space)
*管理系统日期和时间
*识别文件存取故障
*搜索路径的问题
*存取权和所有权问题
*网络存取问题
*获得存取全部文件系统和资源的权限
*与用户通信
*关闭和启动系统
*监视进程

本手册的章节按照以上给出的标题顺序安排,你还必须了解何时及如何进行如下管理工作: (本手册不包含如下系统管理工作:安装系统软件、安装第三厂家软件、建立和管理网络服务、建立和管理邮件服务、扩充和删除硬件、管理安全性和记帐、监视系统和网络性能。)这章其余部分将描述如何完成系统管理员的工作,并介绍一些基本命令和管理工具。
1.1了解超级用户状态
超级用户是一个具有特权的用户,它可不受任何限制地使用全部文件和命令,超级用户有一个特定的UID(=0),这个帐号的用户名为root(其实只要是UID为0的用户就是超级用户)。许多系统管理任务都必须在超级用户下完成,如安装和拆卸文件系统、改变文件和目录的存取权和所有权、备份和恢复文件系统、创建设备文件,以及关闭系统。
我们可以用如下办法进入超级用户:
1、 在其它用户状态下,用不带任何参数的su命令,并按需要键入root的口令。
2、 在login提示下,键入root及其口令。
在入进超级用户后,shell将给出一个特殊的提示符“#”,提醒你对系统有着至高无上的存取权,做任何事情都要小心,通过查询记录文件/var/adm/sulog,可以跟踪谁正在使用超级用户帐号。
最好在必要时才进入超级用户,应该避免在超级用户下做一般的事情。如果某项任务需要你是超级用户,它会提示你应该进入超级用户。当你完成必要的工作后,应立即回到一般用户状态。
由于超级用户非保护的存取权限严重威胁系统的安全,所以root帐号总是设有一个口令,而且为了增加安全性,要经常更换口令。
1.1.1成为超级用户(su)
仅当需要使用root权限完成一定的工作时,你才进入超级用户,下面是从普通用户成为root的方法:
1、 在Shell的$或%提示符下,输入su。如果root帐号有口令的话,系统会提示你键入口令。
2、 键入超级用户口令,如果口令正确,你就具有了超级用户权限,系统显示“#”提示符。
gtxa%su
PassWord:
#
如果想使用root本身的环境变量,键入su -。
1.1.2退出超级用户状态
要退出超级用户状态,就简单地键入exit。
#exit
gtxa%
1.1.3以root注册
要直接注册成root,必须在login提示下完成:
1、 在login提示下,输入root,于是系统提示你输入root口令。
2、 输入root的口令,如果口令正确,系统将出现root提示符#:
login: root
Password:
#
1.2与用户通信
系统管理员工作的一个重要部分是与用户通信,使用户了解管理员所做的事情对系统功能所造成的影响,要让用户及时知道你所做的管理工作(如:重新引导系统,安装新的软件,或以某种方式改变系统环境)何时将对它们产生影响。
管理员可以口头与用户通讯,但最普遍的方式是:
;在注册时显示当前系统专用信息.
;用write命令直接将消息发送到某个用户终端上.
;用wall使用将消息发送给一个系统上的所有用户.
;用rwall命令将消息发送给网络上的所有用户.
;通过电子邮件将消息发送一个或一组用户.
1.2.1在注册时显示系统专用信息
每次用户注册进系统,屏幕上都会显示当天的系统消息,这个消息存贮在文件/etc/motd中。已经注册进系统和正在使用系统的用户看不见此信息,可使用motd命令查看此消息,这些信息包括:操作系统版本号,系统软件的变化,新安装(或删除)的第三厂家文件的名称,或系统的调度时间表。必须确保motd文件是最新的,如果motd显示的是过时的消息,用户会因此而失掉一个关键信息,消息应尽量简短,如果其长度超过一屏,用户就读不到开头部分。/etc/motd文件所在者应该是root, 而且root应是唯一对此文件具有写权限的用户。
gtxa% ls -1 /etc/motd
-rw-r--r-- root sys 49 Jan 1 1970 /etc/motd
gtxa%
注意:系统软件安装后,有几个文件(包括/etc/motd 在内)的更新时间为“Jan 1 1970”这个日期是UNIX的起始日期,当你对这些文件编辑后,这个时间会随之改变。
1.2.1.1建立日期消息
用如下步骤建立日期消息:
1、 成为超级用户
2、 用编辑工具(如vi)编辑/etc/motd文件
3、 删除不用的消息,输入新的消息
4、 保存修改后的文件,这些消息在用户下次登录进系统时显示
1.2.2将信息发送给单个用户
可以使用write命令将信息发送到用户的终端上,当使用窗口系统(如Open Windows)时,每个窗口都有一个独立的帐号,如果用户登录多次,则信息会直接显示在控制台窗口中。
1.2.2.1发送一个短消息给一个单独的用户
用以下步骤将一个一次性的短消息发送给单个用户:
1、 键入write username,username是用户的注册名。
2、 键入要发送的消息。
3、 输完消息后,键入Control-D. 则在username用户的控制台窗口中显示你键入的内容。
下面给出系统管理员发送消息的例子:
gtxa% write ignatz@elm
I'll come by at 12:00 to look at your problem.
gtxa%
下面是在用户控制台窗口显示的消息:
Message from fred@gtxa on ttypl 11:20...
I'll come by at 12:00 to look at your problem.
EOF
1.2.2.2将作为一个文件的消息发给个别用户
如果你想发送消息给一些用户,建立一个消息文件,再使用带参数的write命令来实现,其中的一个参数是消息文件名。
建立一个文件,此文件含有想要发送的消息。 键入write username < filename
在下面的例子中,管理员用cat命令建立消息文件:
gtxa% cat > message
I'll come by at 12:00 to look at your problem.
gtxa% write ignatz@elm < message
write: ignatz logged in more than once...
writing to console
gtxa%
如果用户进入了多个窗口系统,消息就显示在用户的控制台窗口中。下面是显示在控制台上的消息格式:
Message from fred@gtxa on ttypl at 11:20...
I'll come by at 12:00 to look at your problem.
象以上显示的那样,键入的消息与显示的消息是相同,用户可以用write命令响应并初始化一个双向对话,但这种对话不是真的交互式的。有两条打开的write 路径,两个方向各一条,详细介绍见write(1)说明。
1.2.3将消息发送给一个系统或网络中的所有用户
可以使用wall命令(write all)将消息同时发送给系统中的每个用户,用rwall(remote write all)命令将消息同时发送给网络中的所有用户。
要将消息发送给系统中的所有用户:
1、 键入wall
2、 键入想要发送的消息
3、 输入完消息后,键入control-D, 消息就会显示在系统中每个用户的控制台窗口中。
下面是一个实例:
gtxa% wall
System will be rebooted at 12:00
gtxa%
显示在用户控制台窗口的消息:
Broadcast message from root on console...
System will be rebooted at 12:00
EOF
注意:使用rwall命令要非常小心, 因此此命令消耗大量的系统和网络资源,要将消息发送给网络上的所有用户:
1、 键入rwall-n
2、 键入要发送的消息
3、 消息输入完后,键入Control-D, 消息就显示在网络系统各个用户的控制台窗口中。
下面是一个实例:
gtxa%rwall-n Eng
System gtxa will be rebooted at 12:00
gtxa%
显示在用户控制台窗口中的消息是:
Broadcast message from root on console...
System will be rebooted at 12:00
也可以用rwall命令将消息发送给某个系统中的所有用户, 其命令格式为:rwall hostname
1.2.4通过电子邮件发送消息
E-mail是传播某些系统管理信息的一种有效方式,但本手册不介绍如何使用电子邮件,有关邮件信息的详细说明见mail(1)、mailtool(1)和mailx(1)。
1.3启动和关闭系统
启动及关闭系统是系统管理工作的一个组成部分,这一节描述正常启动和关闭系统的过程,如果系统启动出现错误,参阅系统文档中有关如何诊断引导问题。
SunOS 5.x系统软件总处于连续运行状态,这样电子邮件和网络软件能正常地工作,但在以下几种情况下,系统却必须关闭或停止。
;切断系统电源
;安装一个新版本的操作系统
;电源老化
;系统扩充硬件
;进行文件系统维护
1.3.1选择init状态
Solaris系统软件有八个init状态: 缺省init状态/etc/inittab 中确定。Solaris系统软件的缺省init状态是运行级3。表1.1列出了7个可能的运行级别和系统在每级上的状态。
表1.1 系统初始状态
初始状态功能
0掉电状态
1.S.s系统管理员状态(单用户)
2多用户状态(不输出资源,没有启动NFS)
3多用户状态(输出资源,启动NFS进程)
4替换多用户状态(目前不用)
5软件重引状态(目前不用)
6系统重引导状态
/sbin/init 程序负责确保系统正常地运行,也可以用它来改变init 状态的命令,还可以用init 状态(带用-i选择项)作为shutdown命令的参数。以下是四种系统状态类型:
1、 掉电(运行级0)
2、 单用户(运行级1和s或S)
3、 多用户(运行级2和3)
4、 重引导(运行级5和6)
若准备做系统管理工作,必须确定对系统及所需要做的工作来说哪种init状态是合适的。
1.3.1.1查看系统运行级
要查看某系统的运行级,键入who -r:即显示出运行级、日期及时间、进程终止状态、进程id、进程退出状态。
在下面的例子中,系统gtxa处在缺省多用户运行级(3),日期和时间是在Feb 6 15:46,进程终状态是3,进程id是0, 进程退出状态是S:
gtxa%who -r
run-level 3 Feb 6 15:46 3 0 S
gtxa%
下面描述如何使用每个init状态。
1.3.1.2使用掉电状态,运行级0
用此级关闭系统以便安全切断电源。
1.3.1.3使用系统管理员状态,运行级1
当某项管理任务需要你是系统的唯一用户时,使用这一级,在这级状态下,只安装了root和/usr文件系统,只允许使用最少的核心实用程序,发出该命令的终端成为控制台,没有其它用户登录。
1.3.1.4使用多用户状态,运行级2
一般操作都在此状态下进行,在这级状态下多个用户可以访问系统和整个文件系统,除了nfs服务器、syslog和远程共享进程之外,所有的系统管理进程都在运行。
1.3.1.5使用远程资源共享状态,运行级3
此状态一般操作和nfs资源共享一起有效。
1.3.1.6使用替换多用户状态,运行级4
此运行级目前不用。
1.3.1.7使用交互重引导状态,运行级5
要从非缺省引导设备引导系统时,用此级。也可以用reboot -a 命令进入这个状态级。
1.3.1.8使用重引导状态,运行级6
使用此运行级关闭系统,使系统状态为运行级0, 然后重引导到多用户级(或到inittab文件中指定的缺省运行级)。
1.3.1.9使用单用户状态,运行级s或S
使用这一级使系统处于单用户状态,而所有的文件系统被安装且可访问。
1.3.1.10改变运行级
用telinit或init命令改变运行级,telinit命令需要一个单字符参数,此参数为init指定使用的运行级,尽管用户可以直接用init命令,但最好使用telinit命令去改变系统运行级。
1、 变成超级用户
2、 键入telinit n。参数n是要使用的init状态号。
要关闭系统
gtxa% su
Password:
# telinit 0
变成单用户状态:
gtxa% su
Password:
# telinit 1
要变成无nfs服务器系统管理进程运行的多用户状态:
gtxa% su
Password:
# telinit 2
要变到具有nfs服务器系统管理进程的多用户状态:
gtxa% su
Password:
# telinit 3
要关闭且重引导系统到运行级3:
gtxa% su
Password:
# telinit 6
1.3.2选择所用的关闭命令
准备做系统管理工作时,需要确定合适的关闭命令,下面介绍如何使用系统提供的关闭使命。
/usr/sbin/shutdown
/etc/telinit and /sbin/init
/usr/sbin/halt
/usr/sbin/reboot
以上命令皆完成:初始关闭过程,杀死所有的运行进程,将新数据写入硬盘将Solaris系统关闭为适当的运行级。
1.3.2.1 shutdown
在多用户状态下关闭系统,使用shutdown命令,此命令将警告消息发送给注册到此系统的所用用户,等待60秒钟(缺省)后将系统关闭为单用户状态,可以选择不同的缺省等待时间。
1.3.2.2 telinit和init
用telinit或init 命令可以关闭一个单用户系统或改变此系统的运行级,init命令改变系统的运行级,telinit命令init 你想要的运行级,两者可交替使用,但telinit命令更好,可用telinit将系统置成掉电状态(init 0)或进入单用户状态(init)。
注意:telinit/init和shutdown命令是改变系统运行状态的好方法,由于它们是用一级rc shell程序来杀死行进程, 因此用这些程序来关闭系统是最可靠的方式。
1.3.2.3 halt
当系统必须马上停止且不必警告任何用户时,用halt命令。halt命令在关闭系统时没有任何延时也不给系统中的用户以任何警告。halt命令不运行任何 rc shell程序,所以不是一个关闭系统的好方法。
1.3.2.4 reboot
系统不在多用户状态下,用reboot命令关闭系统并重新引导到多用户状态,reboot命令不警告系统中的用户,不运行rc shell程序,所以不是一个关闭系统的好方法。
1.3.3 引导系统
如果系统电源被切断,则开启电源就开始了多用户引导过程。下面说明从ok PROM提示下引导系统到不同状态下的方法。如果PROM 提示是>,键入n即显示出ok提示。
1.3.3.1 引导到多用户状态
要引导系统到多用户状态,在ok提示符下,键入boot,则在缺省驱动器上启动自动引导过程,显示一系列启动信息,最后系统进入多用户状态。
1.3.3.2 引导到单用户状态
要引导系统到单用户状态,在ok提示符下,键入boot -s,系统引导到单用户状态且提示输入root口令:
ok boot -s

INIT: SINGLE USER MODE
Type Ctrl-d proceed with normal start-up
(or give boot password for system maintenance)
键入root口令,注意要继续将系统引导到多用户状态,则键入Control-D。
1.3.3.3交互式引导
如果想对系统文件或核心作暂时改动,可以采用交互式引导,在这种情况下,可以测试所作的改动,且当出现问题时很容易恢复。
1、 在ok>的PROM提示下,键入boot-a,引导过程会按交互式方式提示你。
2、 若响应回车,即缺省/kernel/unix核心引导,若不用缺省核心,则键入要用的核心名称。
3、 若响应回车,即用缺省/etc/system文件,否则键入所用的系统文件名。
4、 若响应回车,即用缺省模块目录路径,否则键入模块目录路径名。
5、 若响应回车,即用缺省root文件系统,也可键入ufs从本地盘引导,或者键入ufs无盘客户。
6、 若响应回车用root设备的缺省物理名,否则键入想使用的设备名。
7、 若响应回车则用缺省交换文件系统类型swapfs(注意:swapfs是唯一允许的交换文件系统类型)。
以下例子中,接受的是缺省选择:
ok boot -a
(Hardware configuration messages)
rebooting from -a
Boot device: /sbus/esp@0,800000/sd@0,0 File and args:-a
Enter[/kernel/unix]:
(Copyright notice)
Name of system file [/etc/system]:
Name of default directory for modules [ ]:
root filesytem type [ufs]
Enter physical name of root device[/sbus@1, f8000000/esp@0,800000/sd@0,0:a]:
Swap filesystem type [swapfs]
configuring network interfaces: leo
Hostname: gtxa
(fsck messages)
The system is coming up. Please wait.
(More messages)
gtxa login:
1.3.3.4查看引导信息
引导信息存贮在/var/adm/messages文件中,引导完系统后若要查看这些信息,键入/usr/sbin/dmesg或more /var/adm/messages,则显示引导信息。
gtxa% /usr/sbin/dmesg
Jan 13 11:22 SunOS Release 5.0 Version [UNIX(R) System V Release 4.0]
system file (etc/system) error: readline error on line 1.
root nexus=Sun 4-60
mem=16384K (0x4000000)
avail mem =14688256
Ethernet address=8:0:20:7:83:17
sbuso at obio 0xf8000000
dma0 at SBus slot 0 0x400000
exp0 at SBus slot 0 0x800000 SBus level 3(sparc ipl 3)
sdl at sep0 target 1 lun 0
/sbua@1, f8000000/esp@0,800000/sd@1,0(sd1):
sd3 at esp0 target 3 lun 0
/sbus@1, f8000000/esp@0,800000/sd@3,0(sd3):
root on /sbus@ 1, f8000000/esp@0,800000/sd@3,0:a fstype ufs swap on swapfs fstype swapfs size 1348K
le0 at SBus slot 0 0xc00000 SBus level 4 (sparc ipl 5)
zs0 at obio 0xf1000000 sparc ipl 12
zs1 at obio 0xf0000000 sparc ipl 12
dump on /dev/dsk/c0t3d0sl size 32748K
Dec 24 12:30:01 sendmail[82]:alias database out of date
Dec 24 12:30:01 sendmail[82}: AA00082: message- in=<9112242030. AA00082@gtxa. Eng. Sun. COM>
Dec 24 12:30:01 sendmail[82]: AA00082: from=root, size=592, class=0, received form local
Dec 24 12:30:02, stat=Sent
Dec 24 12:30:58 sendmail[153]: network daemon starting
Dec 31 15:20:24 rlogind[734]: pcktread: suspeet zero len fdo at obio 0xf7200000 spare ipl 11
cgsix0 at SBus slot 1 0x0 SBus level 5(spare ipl 7)
cgsix0: screen 1152x900, single buffered, IM
mappable 1 gtxa%
1.3.3.5增加新的硬件后引导系统
当系统中增加新的硬件后,boot命令必须使用-r选择项,以便使操作系统在引导过程中查看并装入新的设备驱动程序。
1、 按硬件中的说明装入新的设备驱动程序。
2、 关闭系统且安装新的硬件。
3、 键入boot -r并回车,则运行重配置shell程序,装入在模块目录中的所有的设备驱动程序且建立相应的硬件结点(nodes)。
1.3.3.6退回引导进程
在有些情况下,你也许想退出或中断引导过程,具体的中断键依键盘类型不同而有所不同,例如,可键入stop -A或L1 -A。在tty 终端上,键入Break键。要中断引导过程,键入系统对应的中断键,当中断引导过程后,监视器将显示ok PROM提示:ok
键入boot重新启动引导过程,或键入help显示一组帮助信息。如果终端示出>提示,键入n获得ok提示。
1.3.4关闭系统
下面介绍如何用shutdown和init命令关闭系统。
1.3.4.1关闭一个多用户系统
在关闭一个多用户系统之前,要通知系统中的用户,给用户完成一些处理过程的时间。
1、 键入who,显示出注册的所有用户清单。
2、 键入ps-ef,显示出系统活动进程表,如果系统进程允许关闭,转到下一步。
3、 变成超级用户。
4、 键入cd /,必须在根目录下运行关闭命令。
5、 键入shutdown,系统要你确认是否要关闭系统。
6、 键入y,所有的用户将接收到一个消息,等待60秒后,系统关闭,进入单用户状态且提示键入root口令。
7、 键入root口令,系统处于单用户状态,这时可以进行维护工作。
8、 键入Control-D返回到缺省运行系统级。
# cd /
# shutdown
Shutdown started Fri Aug 6 10:50:35 EDT 1993
Broadcast message from root(console) on earth Fri Aug 9 10:59:35
THE SYSTEM IS BEING SHUT DOWN NOW!!!
LOG OFF NOW OR RISK YOUR FILES BEING DAMAGED
Do you want to continue?(y or n): y

The system is down.
Changing to init state s-please wait.

INIT: New run level S
INIT: SINGLE USER MODE
Type: Ctrl-d to proceed with normal start-up,
(or give root password for system maintenance):
1.3.4.2关闭系统:可选方式
如果想改变shutdown命令的缺省功能,选择以下所述的六种方式之一来完成。
1、 在不确认的情况下关闭系统:
*变成超级用户
*键入cd /,必须在root目录下运行shutdown命令。
*键入shutdown等待时间(Grace Period)
2、 为了改变shutdown等待时间(Grace Period),用以下几步:
*变成超级用户。
*键入cd /,必须在root目录下运行shutdown命令。
*键入shutdown -t .系统在等待用户确定的秒数后关闭。
*下面是改变等待时间(Grace Period)例子:
# cd /
# shutdown -g 120
3、 关闭且重新引导多用户系统
*变成超级用户。
*键入cd /, 必须在root目录下运行shutdown命令。
*键入shutdown -i6 将一条消息发送给所有的用户且执行re6 shell程序;系统关闭为掉电状态,然后恢复到多用户状态。
4、 关闭单用户系统
要关闭一个单用户系统,键入telinit 0(或init 0)命令运行shell程序使系统很快地关闭,没有警告信息。
5、 关闭且重新引导单用户系统
要关闭且重新引导单用户系统,键入telinit 6 (或init 6)。此时系统信息写到硬盘上,杀死所有的活动进程且系统回到掉电状态。系统再重新引导到缺省级(通常是多用户级)。
6、 紧急关闭系统
要紧急关闭一个系统,键入uadmin 2 0. 将系统信息写到硬盘上,系统回到掉电状态,且显示PROM提示。
1.4监视进程
某一时刻在系统中运行的程序称为进程。用户可以监视进程的状态,控制一个进程获得的CPU时间,挂起或终止一个进程的执行。
ps命令是获得进程信息的主要工具。可以用ps和grep命令查寻所需要的信息,可以确定哪些进程正在(或没有)运行,而且可以获得一个进程的详细信息,这些信息包括:
*PID<进程ID>
*UID<用户ID>
*优先级
*控制终端
*存贮器的使用
*CPU时间
*当前状态
ps命令反映的是命令被键入时的系统状态,因此当你正在监视系统时间的活动情况时,必须明白当你读结果时它们已经有点过时,表1.2列出了ps(1)手册。
表1.2 ps 命令最常用的选择项目
可选项说明
-e 报告所有的进程
-l 生成一个长报告,此报告中包括除STIME之外的所有域。
-f 显示进程启动程序的全路径名
1.4.1 ps命令报告的内容
当键入ps-e时,可获得如下所示的信息
gtxa% /usr/bin/ps -e
PID TTY TIME COMD
0 ? 0:02 sched
1 ? 0:01 init
2 ? 0:00 pageout
192 ? 0:00 sac
79 ? 0:10 inetd
75 ? 0:01 in route
136 ? 0:04 automoun
143 ? 0:01 crom
123 ? 0:01 statd
104 ? 0:01 rpcbind
106 ? 0:01 rpc. rwal
108 ? 0:01 rpc. ruse
110 ? 0:01 rpc. spra
113 ? 0:01 ypbind
115 ? 0:00 keyserv
117 ? 0:01 kerbd
127 ? 0:02 lockd
251 pts/0 0:00 ps
165 ? 0:00 scndmail
193 ? 0:01 ttymon
174 ? 0:03 sysylogd
156 ? 0:01 lpsched
209 ? 0:02 in rlogi
211 pts/0 0:03 csh
164 ? 0:00 lpNet
gtxa%
各栏内容说明如下:
*PID: 进程标识号
*TTY: 启动此进程(或其父进程)的终端。如果进程没有控制终端这一栏显示一个问号<?>──显示问号的进程常常是系统进程。
*TIME: 进程所用的CPU时间
*COMD: 产生此进程的命令名,注意:ps-e 命令仅显示出文件名的头八个字符。
当键入ps -el时,可看到如下的显示内容:
gtxa% /usr/bin/ps -el
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME COMD
19 T 0 0 0 80 O SY f010f1c8 0 ? 0:02 sched
8 S 0 1 0 251 0 20 fflad800 48 fflad9c4 ? 0:01 init
19 S 0 2 0 0 0 SY fflad000 0 fflad07d ? 0:00 pageout
8 S 0 192 1 49 1 20 ff1f7000 238 ff2de348 ? 0:00 sac
8 S 0 79 1 80 1 20 ff232800 258 f010fla4 ? 0:10 inetd
8 S 0 75 1 80 1 20 ff249000 327 ff2de448 ? 0:01 in route
8 S 0 136 1 80 1 20 ff2c3000 287 f010fla4 ? 0:04 automoun
8 S 0 143 1 80 1 20 ff293000 270 f010fla4 ? 0:01 cron
8 S 0 123 1 49 1 20 ff28e800 258 f010fia4 ? 0:01 statd
8 S 0 104 1 80 1 20 ff25a000 301 f010fla8 ? 0:01 rpcbind
8 S 0 106 1 77 1 20 ff258800 272 f010fia4 ? 0:01 rpc.rwal
8 S 0 108 1 80 1 20 ff260800 272 f010dla4 ? 0:01 rpc.ruse
8 S 0 110 1 78 1 20 ff266800 272 f010fla4 ? 0: 01 rpc. spra

表1.3是ps -el长报告中各域的说明表
域说明
F 十六进制标示,加在一起表示进程目前的状态
      00进程已经终止,它对应的进程表项已空
      01此进程是一个进程且总是在内存中
      02此进程正被它的父进程跟踪
      04此进程在被它的父进程跟踪,且已经停止运行
      08此进程不能用信号激活
      10进程正在内存中且在一个文件完成之前被锁住
      20此进程不可换出
S 进程的当前状态,由下列字母之一表示:
      O正在处理器上运行
      S睡眠;等待IO事件完成
      R运行就绪。
      I空闲状态,进程正在创建
      Z僵尸状态;进程已经终止且父进程不再等待,但此死进程仍留在进程表中。
      T因父进程正在跟踪它而停止执行
      X等待获得更多的内存
UID 进程所有者的用户ID号
PID 进程标识号
PPID 父进程的标识号
C 进程所用的CPU时间(该进程所用CPU时间的百分比估计值)
PRI 进程调度优先级,数字越大表示优先级越低
NI 进程的nice数,影响其调度优先级,提高进程的nice数意味着降低其优先级、使用更少的CPU时间
SZ 进程所需虚存数量,它很好地表示出进程对系统存贮器的要求。
TTY 启动此进程(或父进程)的终端,或者是“?”表示无控制终端(通常表示系统进程)。
TIME 进程从启始到目前所使用的CPU时间总和
COMD 产生此进程的命令。

标签: