您好,欢迎来到九壹网。
搜索
您的当前位置:首页UNIX高级操作命令

UNIX高级操作命令

来源:九壹网


课程IK000202 UNIX高级操作命令

ISSUE1.0

IK000202 UNIX高级操作命令 ISSUE1.0

目 录

目 录

课程说明 ....................................................................................................................................... 1

课程介绍 .......................................................................................................................................1 课程目标 .......................................................................................................................................1 相关资料 .......................................................................................................................................1

第1章 shell的基础知识 ............................................................................................................... 2

1.1 什么是shell ............................................................................................................................2 1.2 别名化 ....................................................................................................................................3 1.3 shell变量 ................................................................................................................................4

1.3.1 shell变量的存储机制 ...................................................................................................4 1.3.2 变量替换 ......................................................................................................................4 1.3.3 命令替换 ......................................................................................................................6 1.4 用户环境 .................................................................................................................................6 1.5 两个重要的环境变量 ..............................................................................................................7 1.6 登录时发生的事情 ..................................................................................................................8 1.7 shell启动文件 ........................................................................................................................9 1.8 监控进程 .................................................................................................................................9

第2章 UNIX通用命令 ................................................................................................................ 11

2.1 用户管理 .............................................................................................................................. 11

2.1.1 增加新用户............................................................................................................... 11 2.1.2 删除用户 .................................................................................................................. 12 2.1.3 增加新用户组 ........................................................................................................... 12 2.1.4 删除用户组............................................................................................................... 12 2.2 进程管理 .............................................................................................................................. 13

2.2.1 ps命令 ...................................................................................................................... 13 2.2.2 后台进程 ................................................................................................................... 13 2.2.3 kill命令 ..................................................................................................................... 14 2.3 文件系统管理...................................................................................................................... 15

2.3.1 mount ....................................................................................................................... 15

2.3.2 umount ..................................................................................................................... 15 2.3.3 加载配置文件 ............................................................................................................ 16 2.3.4 fsck ........................................................................................................................... 16 2.4 系统性能监控 ...................................................................................................................... 17 2.5 使用网络服务 ...................................................................................................................... 19

2.5.1 rlogin命令 ................................................................................................................. 19

IK000202 UNIX高级操作命令 ISSUE1.0

目 录

2.5.2 rcp命令 .................................................................................................................... 19 2.5.3 主机间的信任关系 .................................................................................................... 20

第3章 shell编程简介 ................................................................................................................. 22 第4章 HP-UX系统管理 ............................................................................................................. 27

4.1 HP-UX系统管理工具SAM.................................................................................................. 27

4.1.1 启动SAM ................................................................................................................. 27 4.1.2 在X_Windows环境下运行SAM ............................................................................. 27 4.1.3 在字符终端运行SAM ............................................................................................... 28 4.1.4 运行SAM进行远程系统管理 ................................................................................... 28 4.2 HP系统的运行级别 ............................................................................................................. 28 4.3 用逻辑磁盘管理器(LVM)管理磁盘 .................................................................................. 28

4.3.1 什么是逻辑卷 ........................................................................................................... 28 4.3.2 逻辑磁盘管理器简介 ................................................................................................. 29 4.3.3 逻辑磁盘管理的基本规则 .......................................................................................... 30 4.3.4 逻辑磁盘管理器的工作机制 ...................................................................................... 30 4.3.5 逻辑磁盘管理的规划 ................................................................................................. 31 4.3.6 与逻辑磁盘管理相关的命名规则 ............................................................................... 31 4.3.7 使用SAM提供的逻辑磁盘管理工具 ......................................................................... 32 4.3.8 使用命令行逻辑磁盘管理工具 .................................................................................. 33 4.3.9 磁盘的镜像............................................................................................................... 34 4.4 HP双机软件 ........................................................................................................................ 36

第5章 Solaris系统管理 ............................................................................................................. 40

5.1 Solaris运行级别管理 .......................................................................................................... 40

5.1.1 Sun Solaris运行级别 ................................................................................................ 40 5.1.2 改变系统运行级别命令 ............................................................................................. 40 5.2 OpenBoot(Prom) 常用命令 ................................................................................................. 41 5.3 应用软件常用安装/删除命令(add/delete software) .............................................................. 42

5.3.1 管理软件包 ............................................................................................................... 42 5.3.2 管理补丁 ................................................................................................................... 43 5.4 硬盘分区及格式化 ............................................................................................................... 44

IK000202 UNIX高级操作命令 ISSUE1.0

课程说明

课程介绍

课程目标

相关资料

课程说明

本课程为UNIX的高级操作命令,它是前续课程《IK000201 UNIX基本命令》的补充。由于很多系统级的命令都是各UNIX操作系统专用命令,所以我们就主要使用的HP-UX和Solaris分别作了介绍,但我们不对因其版本变化而导致命令变化做出及时的通知,也不对由于操作没有在配套的操作系统上进行而导致的微小或重大损失负任何责任。本课程包括的主要内容如下:shell基础知识、UNIX的通用命令、shell编程简介、HP-UX系统管理和Solaris系统管理。

完成本课程学习,学员能够:

 掌握shell的基础知识  了解shell的编程基础知识  掌握通用UNIX高级命令  掌握HP-UX系统管理命令 

掌握Solaris系统管理命令

 HP-UX用户手册 

Solaris用户手册

1

IK000202 UNIX高级操作命令 ISSUE1.0

第1章 shell的基础知识

第1章 shell的基础知识

1.1 什么是shell

UNIX shell(UNIX外壳)是一个UNIX的特殊程序。Shell可以看成是一个命令解释器,在命令提示符下输入命令,命令发出后会被执行。使用者通过shell与计算机通信。shell接受用户在键盘上敲入的内容,并把这些内容翻译成内核可以理解的形式,然后系统执行这个命令。

本章内容主要介绍POSIX shell的交互性特点。POSIX shell不仅仅执行用户的命令,还通过与用户交互,完成其他功能。但在华为公司的智能网产品中C shell也得到广泛使用,所以下面的介绍中,如果遇到POSIX shell与C shell不同的地方,会单独提出。

当你登录到UNIX系统时,shell会先为你的终端会话过程定义一些特定的特征,然后显示你的提示符。这个提示符在POSIX、Bourne和K shell中被默认为是一个$符号。C shell的默认提示符是一个百分比符号(%)。 目前UNIX系统有四种比较通用的shell可供选择:

Bourne shell(/usr/old/bin/sh) AT&T UNIX系统最初提供的shell,

由贝尔实验室开发而成。它提供了UNIX的命令解释器和编程用的接口,该接口可用来开发shell程序,常常被称为脚本(script)。这些可编程的交互式接口可以实现变量定义和替换、变量和文件检测、分支和循环功能。

C shell(/usr/bin/csh) 基于BSD的UNIX系统提供的shell,由加利福尼亚大学伯克利分校的Bill Joy开发而成。由于它具有一些交互性的特征,如可以从命令栈恢复和编辑曾经键入的命令以及别名机制(允许使用个性化的名字取代系统当前的命令),人们认为它比Bourne shell更先进了一步。

Korn shell(/usr/bin/ksh)

这是贝尔实验室较新的开发成果,由

David Korn开发而成。它支持Bourne shell简单的编程接口,因此可以认为是Bourne shell的增强版,但它同时具有C shell方便、可交互性的特征。这个shell的代码已被优化以提供更快、更高效率的shell。

POSIX shell(/usr/bin/sh) 遵从POSIX,包括编程语言和命令解释

器。这个shell和Korn shell有很多方面相似。它提供历史命令机制,支持作业管理,还具有其他各种有用的特点。各种shell的特征比较如表1-1所示:

2

IK000202 UNIX高级操作命令 ISSUE1.0

第1章 shell的基础知识

表1-1 各种shell的特征比较

特征 历史命令 描述 以前使用过的命令可以存在缓存中作修改或重新调用 可以用文本编辑器修改当前或以往的命令 在命令行中自动补齐文件名 可以用来重命名命令、自动包括命令选项和精简长命令行 着眼于安全方面的特性,其环境的功能受到 跟踪和访问在后台执行进程的工具 Bourne 否 Korn 是 C 是 POSIX 是 行编辑 文件名补齐 别名命令 否 否 否 是 是 是 否 是 是 是 是 是 版shell 作业控制 是 否 是 是 否 是 是 是 1.2 别名化

别名是命令的一个新名字。使用别名可以缩短长命令行,创建新的命令,用别名命令的功能替换原标准命令的功能从而使标准命令执行起来跟以前不同。别名可以是一个字母或一个简短的单词。 [语法]:alias [name[=string]] 注意:

C shell中,其格式为:alias [name [string]],即不使用“=”,而用空格取代。

[例子]:$alias dir=ls

照顾习惯使用DOS的使用者

其中name是命令的别名,string是被指定别名的原名。如果string有空格,需用双引号将其括起来。(C shell可以不需要用引号)

键入别名命令和键入其他命令看上去是一样的。用户不知道其所执行的命令是UNIX系统原来的命令还是指向UNIX命令的别名命令。 不带参数的alias会显示所有当前定义的别名。 要列出某特定的别名的值,用alias name。

在华为智能网的应用中大量用到了别名化特性。从而使得使用更加方便。例如在用户scu的.cshrc文件中有如下别名定义: alias cls clear

3

IK000202 UNIX高级操作命令 ISSUE1.0

第1章 shell的基础知识

alias dir ls -F alias lsa ls -la alias lsf ls -F alias ll ls -l alias h history

alias in \"cd ${TELLIN_DIR}\" alias log \"cd ${TELLIN_DIR}/log\" alias sms \"cd ${TELLIN_DIR}/sms\"

1.3 shell变量

1.3.1 shell变量的存储机制

在shell中有两块内存存储shell变量:本地数据区和用户环境区。当定义个一个新的变量时,将从本地数据区分配内存存储该变量。在这个区域的变量归当前shell所有,常称为本地变量。任何后来启动的子进程无法访问这些本地变量。但被移至用户环境中的变量可以被子进程访问。

为了使其他进程能够访问一个变量,这个变量必须存在于用户环境中。定义个变量后,该变量存放在本地数据区,必须将它export到用户环境区。

1.3.2 变量替换

每个被定义的变量有一个值与其对应。当变量名前面紧接一个美元符($)时,shell会用这个变量的值替换这个参数。这个过程称为变量替换。它是shell运行命令行之前执行的任务之一。Shell将命令行中所有需要替换的变量最替换之后才会执行该命令。因此,变量也可以代表命令、命令的参数或者整行命令行。例: $echo $PATH

/usr/bin:/usr/contrib/bin:/usr/local/bin $PATH=$PATH:$HOME:. $echo $PATH

/usr/bin:/usr/contrib/bin:/usr/local/bin:/home/usr3:. $echo $HOME /home/usr3

4

IK000202 UNIX高级操作命令 ISSUE1.0

第1章 shell的基础知识

用绝对路径名定义一个变量的值,通过使用该变量,可以在文件系统的任何位置访问目标或目录。

$dir_name=tree/car.models/ford $echo $dir_name tree/car.models/ford $ls –F $dir_name sedan/sports/ $my_ls=”ls –aFC” $$my_ls $dir_name ./

../ sedan/ sports/

使用引号,让shell忽略

另外,注意花括号的使用,它可以用来界定变量名与其周围的文本。 $file=this $file1=that

$echo $fileand$file1 sh:fileand:parameter not set $echo ${file}and$file1 thisandthat

还有一种替换叫波浪号替换。如果一个词用波浪号(~)开头,这个词会扩展这个波浪号。注意只能扩展位于单词开头的波浪号,也就是说,/~home/user3不能扩展其中的波浪号。波浪号扩展按照以下规则进行: 如果是单独的一个波浪号或者在/之前的波浪号,用HOME变量的路径名取代这个波浪号。

如果波浪号后面紧接着+,用PWD变量的值取代这个波浪号。 如果波浪号后面紧接着—,用OLDPWD变量的值取代这个波浪号。 如果波浪号后面紧接着几个字符,然后接着一个/,shell会核对这几个字符是否与某系统用户名相同,如果匹配,那么用户的家目录取代~符号。 $echo $HOME /home/user3 $echo ~ /home/user3

5

IK000202 UNIX高级操作命令 ISSUE1.0

第1章 shell的基础知识

$echo ~tellin/config /home/telling/config

1.3.3 命令替换

命令替换就是同一个命令行中用一个命令的输出结果替换该命令。命令替换的标准语法是$(command),这也是POSIX推荐的语法,但几乎只能被POSIX shell辨认。命令替换的另一种形式是用单引号将命令扩起来:`command`,这种形式在各种shell中更为通用。 $echo date date $echo `date`

Thu Dec 19 13:47:27 CST 2002

1.4 用户环境

环境描述了会话过程的许多内容,其包括以下信息:

      

主目录的路径名 在哪里存放email 工作的时区 登录的身份

shell从哪里搜索命令 终端类型和大小

应用程序所依赖的其他东西。

例如,命令vi和more需要知道使用的终端类型,转换它们采样可以正确地格式化输出结果。

用户环境可以比喻为办公室环境。在办公室里,像照明、噪声和温度等对于所有的工作人员都是一样的。办公室中只有你才拥有的因素构成了你的特定环境。这些因素包括:你在做什么工作、你的办公桌的布置、你和办公室里其他人的关系等等。正如你的工作环境对于你是唯一的一样,你的用户环境也是唯一的。

许多应用程序要求在某些方面设置环境,这可以通过修改.profile文件来实现。 在登录进系统时,可以运行命令env察看环境。它会显示设置在环境中的每一个因素。

6

IK000202 UNIX高级操作命令 ISSUE1.0

第1章 shell的基础知识

在env命令运行结果的列表中,“=”左边是已经设置的不同环境变量的名字,“=”右边是相关参数的值。

每个环境变量的设置都是有其理由。以下是一些常见的环境变量及其含义:

    

TERM,COLUMNSHE LINES HOME PATH

描述所使用的终端 主目录的路径名 搜索命令地点的列表 登录用的用户名 专用的X Window变量

LOGNAME DISPLAY

这些变量中有一些由系统来设定,其他的在/etc/profile或.profile中设定。

1.5 两个重要的环境变量

PATH

PATH变量代表的是shell搜索命令的一系列目录。这样只需键入一个命令名,不用输入该命令的完全路径名(如键入vi,不用键入/usr/bin/vi)。下面是一个默认的PATH变量的例子:

PATH=/usr/bin:/usr/contrib/bin:/usr/local/bin

这个例子表明,键入一个命令,shell将首先在/usr/bin搜索该命令,接着是/usr/contrib/bin,以此类推,直到这些目录找到或者都找不到该命令。如果键入的命令在任何一个PATH目录都找不到,在屏幕上会显示一个错误信息:command:not found。我们有时候明明能看到某个命令就在当前目录下,但执行它时就是报没有找到的错误,这也是因为PATH变量设置的原因。您可以./command或在PATH变量设置中加入“./”(表示当前目录)来解决这个问题。所以正确而完备地设置PATH变量能极大提高命令行下的工作效率。

TERM

TERM变量是一个描述使用终端类型的环境变量。为了使许多命令能正确执行,这些命令需要知道使用的终端类型。如ls命令需要知道屏幕上有多少列,more需要知道屏幕上有多少行,vi命令需要同时知道屏幕的行和列的数目,以及其他更多关于终端类型的信息,这样它才能正常工作。

系统管理员已经设置好了你的系统,UNIX系统不会向你提问你的终端类型。在这种情况下,应该用env命令察看TERM变量值。

当使用more或vi时,终端表现很异常,查一下TERM变量的值。如果它已经被正确设置,执行命令test。这个命令将按TERM变量的值设置终端的特征。

7

IK000202 UNIX高级操作命令 ISSUE1.0

第1章 shell的基础知识

注意:

我们使用通常的telnet软件登录unix系统时,绝大多数的场合需要把TERM设置为vt100的类型。当使用专用的终端时,例如hp的绿屏,需要重新设置TERM变量。例如TERM=hp。

1.6 登录时发生的事情

当在login:提示符下输入您的用户名和密码后,系统检查/etc/passwd文件,核对通过后,系统会将你放在您的主目录,为您启动一个shell。当shell被启动时,真正发生了什么事情呢? 1. getty

显示文件/etc/issue的内容 发出登录提示符 运行登录程序 2. login

核对用户名和密码 将用户置于HOME目录 运行用户的shell 3. shell

运行/etc/profile[POSIX,Bourne和Korn shell或者/etc/csh.login(C shell)] 运行用户主目录中的.profile或.login 执行用户主目录中的.kshrc或.cshrc文件 发出shell提示符

以POSIX shell为例,一旦shell开始运行,它会从/etc/profile这个系统命令文件读出命令。任何人可以在任何时候登录和启动一个shell,系统都会读取该文件。在主目录还有一个.profile文件。读取/etc/profile后,shell会读取.profile文件。这两个文件用来设置一个用户的环境。

/etc/profile搭建起系统每个用户的基本环境,.profile进一步细化环境使其使适应用户的要求。既然每个人都使用/etc/profile,那么系统管理员要承担起维护这个文件的责任。但为了搭建用户环境,维护.profile是您的责任。

8

IK000202 UNIX高级操作命令 ISSUE1.0

第1章 shell的基础知识

完成这两件事情后,shell发出第一个shell提示符。 注意:

如果用CDE登录,CDE通常不使用/etc/profile、$HOME/.profile和$HOME/.login这几个登录脚本。但可以强迫执行$HOME/.profile(sh或者ksh用户)或$HOME/.login(csh用户),方法是在.dtprofile中设置下面这个环境变量:

DTSOURCEPROFILE=true

如果不设置这个变量为ture,用CDE登录只执行.dtprofile。.dtprofile包含已经被注释掉的参数配置,这些参数用来设定CDE环境。

1.7 shell启动文件

.profile

任何一个用户如果想定制系统管理员提供给他的默认环境,他必须创建或者修改文件.profile。这个文件通常用来在登录过程中定义或者设置环境变量、建立用户的终端、执行程序。

/etc/profile或/etc/csh.login

/etc/profile或/etc/csh.login是一个影响到整个系统的启动文件,由所有使用这几个shell的用户执行。系统管理员也许要配置这个文件以保证所有用户的应用程序能在一个一致的环境中执行。普通用户没有这个文件的写权限,因此不能修改这个文件的内容。

.cshrc和.login

当登录进以C shell为登录外壳的系统时,这个shell在起始目录查找名为.login的文件。如果找到,出现第一个shell提示符之前将执行这个文件中的命令。如果找到.cshrc文件,出现第一个shell提示符之前同样将先执行这个文件中的命令。如果这两个文件都有,将先执行.cshrc,再执行.login。

1.8 监控进程

在系统上启动的每个进程都被分配一个唯一的标识号,这个标识号叫进程号(PID)。ps命令显示当前运行(或者处于睡眠状态)进程的有关信息,包括每个进程的PID及其父进程的PPID。通过PID和PPID可以跟踪到在系统中运行的任何进程的痕迹。ps命令还可以报告谁是进程的所有者、每个进程的运行终端和其他有用的信息。

执行ps命令通常可以不带参数,执行结果是仅仅在与本终端会话过程中运行的进程的简短信息。

9

IK000202 UNIX高级操作命令 ISSUE1.0

第1章 shell的基础知识

$ps

PID TTY TIME COMMAND 19326 pts/tc 0:00 telnetd 24849 pts/tc 0:00 ps 19327 pts/tc 0:00 sh 20492 pts/tc 0:00 csh

如果带-f选项,ps命令的结果是一个详尽的信息列表,包括PPID以及其他信息。

10

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

第2章 UNIX通用命令

随着现代多种UNIX系统的发展,有很多UNIX的命令的选项已经只能在其本身的系统中运行。本章所介绍的命令以及其选项尽量选用在各种UNIX系统中均能使用的通用命令。

2.1 用户管理

2.1.1 增加新用户

步骤一:创建用户

要在UNIX系统中增加新用户,可采用useradd命令,常用命令格式如下: useradd [-c comment] [-d directory]] [-g group] [-m] [-s shell] username 其中:

     

-c comment -d directory -g group -m

-s shell username

表示注释 表示主目录 表示属于哪个用户组

表示若家目录不存在,则自动创建 表示该用户使用的shell 用户名

例1:要创建一个名为sms的用户,其它默认,创建命令如下: #useradd -m sms

若不给出directory,系统则自动创建缺省主目录,如/usr/sms,缺省shell为 B Shell。

例2:要创建一个名为informix的用户,所属组为informix,shell为csh,其它默认,创建命令如下:

#useradd -m -g informix -s /bin/csh informix 例3:下面的命令:

#useradd -c \"Test User\" -m -d /test/test02 -g xyw -s /bin/ksh test02 表示要创建一个名为test02的用户,属于xyw用户组,主目录为/test/test02(自动创建)。“Test User”表示注释。

11

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

步骤二 设密码

对用户建立密码的命令为: #passwd sms

根据提示输入一次密码并再确认一次,就可以使用此用户登录系统了。当然,此用户属于默认的用户组user,shell 使用POSIX(HP-UX)或bsh(SUN Solaris)。 注意:

useradd仅在HP HP-UX、SUN Solaris上提供,在IBM AIX上,命令有所不同。

2.1.2 删除用户

删除用户的命令常用格式为: #userdel username

有的UNIX系统可能不允许彻底删除该用户,userdel只能回收该用户的使用权。 注意:

userdel仅在HP HP-UX、SUN Solaris上提供,在IBM AIX上,命令有所不同。

2.1.3 增加新用户组

要在UNIX系统中增加新用户组xyw,命令如下: # groupadd xyw

命令执行完后就增加了一个名为xyw的用户组。 注意:

groupadd仅在HP HP-UX、SUN Solaris上提供,在IBM AIX上,命令有所不同。

2.1.4 删除用户组

要将在UNIX系统中用户组gp11删除,命令如下:

12

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

#groupdel gp11

命令执行完后就将gp11用户组删除了。 注意:

groupdel仅在HP HP-UX、SUN Solaris上提供,在IBM AIX上,命令有所不同。

2.2 进程管理

2.2.1 ps命令

在系统上启动的每个进程都被分配一个唯一的标识号,这个标识号叫进程号(PID)。ps命令显示当前运行(或者处于睡眠状态)进程的有关信息,包括每个进程的PID及其父进程的PPID。

ps命令调用时通常不带参数,而且只提供同一个终端的相关进程报告。-e参数能够列出正在系统上运行的每一个进程。-f、-l这两个参数可以列出完整的、长度很大的、包括列出运行进程相关详细内容说明的列表。 注意:

使用ps命令时会增加系统cpu的负担。所以尽量少用。

2.2.2 后台进程

在命令的后面加上“&”即可让该作业转入后台进程。但如果该shell退出,则后台运行的命令也会退出。

UNIX操作系统提供了nohup命令,使得某些命令避免被挂起和退出。nohup命令是UNIX系统中前缀命令组的一种,比其他的命令的优先级要高。它必须要与在后台运行的命令一起使用。值得注意的是,退出操作通常都会终止后台作业。当一个后台命令被nohup’ed以后,可以照常退出而UNIX系统将继续执行这个后台作业。

所以当要执行一些需要在后台运行而且不希望它随着终端的退出而退出。需要加上nohup前缀: $nohup command&

13

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

2.2.3 kill命令

语法:

kill [-s signame] pid ...or kill -signame pid ... kill [-s signum] pid ...or kill -signum pid ... kill –l 例子: kill 995

kill -s kill 100 =kill -9 100

kill命令可以终止所有的命令行,包括nohup命令和后台运行的命令。其针对性较强,直接给进程发送信号。Kill命令只能终止发出者自身所能执行的各种命令,它不能终止别的用户发出的命令,除非这个用户是root用户,那它就可以终止所有的命令和进程。

在大多数的UNIX系统中里,默认状态下,kill命令发送一个TERM(软件终止信号)信号给指定的进程,在终止进程的操作中,对这个信号并不做处理,也就是说忽略这个信号本身。 常见的signame和signum: signum signame 0 1 2 3

SIGNULL SIGHUP SIGINT SIGQUIT

Name

Description Check access to pid

Null

Hangup Terminate; can be trapped Interrupt Terminate; can be trapped Quit Kill

Terminate with core dump; can be trapped Forced termination; cannot be trapped

9 SIGKILL 15 24 25

SIGTERM Terminate Terminate; can be trapped SIGSTOP SIGTSTP

Stop Pause the process; cannot be trapped Terminal stop Pause the process; can be trapped

26 SIGCONT Continue Run a stopped process 注意:

1. 并非所有的进程都可以被kill命令终止。

2. kill命令比较危险,特别是SIGKILL 选项是立即终止该进程。慎用!

14

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

3. kill -l命令将写出所有信号名的值。一旦使用-l这个参数,所有的符号名都

会被写入到标准输出中。

2.3 文件系统管理

2.3.1 mount

2.3.2 umount

要想使用一个新生成的文件系统,需要将它加载成目录树的一部分,由于UNIX上的所有文件都位于一个目录树上,加载操作使得新文件系统的内容看上去就是原来目录中的一部分。 加载一个文件系统的语法如下: #mount device directory

这里的device是你想加载的逻辑设备路径名,directory是你想让device中给出的文件系统使用的目录名。例如,下面的命令将存在/dev/dsk/c0t3d0s6中的文件系统加载到目录/www上: #mount /dev/dsk/c0t3d0s6 /www

在加载一个文件系统时,需要注意以下三点:

在加载进行之前的目标目录必须已经存在,否则,会给出类似错误信息:mount:mount point /www does not exist

加载将覆盖目录中以前加载的文件系统的内容。这些内容在umount该文件系统以后可以再次呈现出来。

当目标目录正在使用时,加载操作不会成功。

mount命令可以用三种不同的格式列出所有已经加载的文件系统:

 mount

 mount –p 

mount –v

文件系统可用umount命令卸载。一般可用以下两种格式: #umount directory #umount device

device是一个常规逻辑设备路径名。通常第一种格式用得较多,因为得到想要卸载的目录要容易些。

15

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

如果已经mount的目录或其子目录有用户或进程在使用,或当前目录处于挂接目录,则无法umount该文件系统。

2.3.3 加载配置文件

2.3.4 fsck

mount和umount命令都用/etc/vfstab配置文件,它列出了在启动时需要加载的所有分区,以及应将它们加载到哪个目录上。这个文件使您可以定义对一个文件系统的加载选项,它还允许你通过定义目录而不是逻辑设备路径名来加载一个文件系统。

/etc/vfstab被分成不同的列,表示不同分区所用的文件系统的信息。 #

1

2

3

4

#device to mount device to fsck mount point FS type

#

5

6

7

#fsck pass

mount at boot mount options

1. 第一列包含了文件系统所在设备的逻辑设备路径名。

2. 第二列包含了fsck程序在启动时用于确认文件系统状态所需的原始逻辑

设备路径名。

3. 第三列包含了加载点、或文件系统将要加载的目录名。 4. 第四列包含了文件系统系统类型(通常是UFS或PCFS)。

5. 第五列包含了一个整数,它描述了fsck在启动时的行为。如果这列的值

为1,那么系统一直等到fsck宣布文件系统已经稳定之后才启动。如果这列的值为破折号,那么在系统启动过程中fsck不会在文件系统中运行。 6. 第六列用于表示文件系统是否应在启动时加载,如果这列的值为yes,那

么文件系统应在系统启动时加载。

7. 最后一列包含了在加载文件系统时所用的加载选项。

1. fsck概述

/usr/sbin/fsck是常用的文件系统检查和修复程序,通常当系统在单用户初始化状态时(如当进入运行等级S后),由超级用户执行这个程序。 fsck的语法为直接执行fsck。 #fsck

16

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

注意:

千万千万不要在已加载的文件系统上使用fsck,这样做会使文件系统进入不稳定状态,从而导致内核错误。任何试图在已经加载的文件系统上解决问题的努力都可能导致问题比原来更严重。

为什么会出现不稳定状态呢?理论上应该不会出现的,这里有三个常见的原因:

  

在关电前,没有先关闭Solaris系统。

没有对盘数据进行同步就停止(halt)了一个系统。

硬件故障(如盘块和磁头损坏,这可能是由于搬动了系统或者电源不稳定)。

这些问题最终表现为一系列内部表格的损坏,每个UNIX文件系统都利用这些内部表格来管理空闲盘空间和i-节点,这些表格的损坏会将本来空的盘块报告成已经占用,或者将一些已经被某个程序占用了的盘块报告成空闲的。 2. fsck的步骤

运行fsck的第一步是允许在启动时进行文件系统检查。要想做到这一点,就需要为虚拟文件系统配置文件/etc/vfstab中的fsck域定义一个整数值,这个值为1时表示顺序进行fsck检查,为2时表示不进行顺序检查。如下例: /dev/dsk/c1t2d1s3 /dev/rdsk/c1t2d1s3

/usr

ufs 2

yes -

上面的方法对某个文件系统设置了允许检查fsck后,就可以运行fsck。fsck检查文件系统几个不同部分的完整性,最重要的是超级块,他们保持了盘的许多汇总信息。每次盘上的数据有所改动时都需要对超级块进行写或重写,因此超级块是文件系统上最常被修改的部分,它也就成为最容易损坏的部分。对超级块进行的检查包括下面这些:

检查文件系统的大小,这个数显然要比从超级块中表示的块数计算出的值要大。

i-节点的总数,它应比最大i-节点要小。 所报告的空闲块和i-节点的记录。

 

2.4 系统性能监控

随时掌握系统的性能对于系统管理员来说是非常重要的。top是一个性能管理的好工具。Top可以交互式监视系统上的进程和系统的主要状态,如CPU活动状态、真正内存和虚拟内存的状态以及平均负荷。另外,top还是显示那些在每个采样间隔中消耗最多CPU时间的几个领先进程。

17

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

下面是一个top的打印输出:

last pid: 4125; load averages: 0.94, 0.93, 0.92 17:38:46 57 processes: 56 sleeping, 1 on cpu

CPU states: 99.3% idle, 0.3% user, 0.4% kernel, 0.0% iowait, 0.0% swap Memory: 1024M real, 726M free, 1001M swap free

这个总结告诉我们系统有57个进程,但只有1个在运行,其余处于休眠状态。在前一个采样周期系统有99.3%处于空闲中,几乎没有iowait活动,从而保证了快速的性能。在前1分钟、5分钟和15分钟的平均负荷分别是0.94、0.93和0.92-这显然不是一台在工作重压下的机器(只要平均负荷不大于1就不算太重)。另外,还显示了最后一个分配给应用程序的PID-4125。 PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND 29107 root 18 115 -20 2336K 1880K sleep 14:59 0.20% clustd 4111 root 1 49 0 1760K 1456K cpu1 0:00 0.11% top-3.5b8-sun4u 29663 root 6 59 0 2744K 2272K sleep 5:10 0.08% pnmd 1109 root 5 48 0 2296K 1776K sleep 1:43 0.01% netfmd 4124 root 1 43 0 920K 672K sleep 0:00 0.01% sleep 523 root 12 58 0 2512K 2256K sleep 1:33 0.00% mibiisa 446 root 10 110 -20 2184K 1736K sleep 0:45 0.00% smad 463 root 14 100 -20 4080K 3120K sleep 0:39 0.00% rpc.pmfd 1048 root 1 33 0 1840K 1352K sleep 0:03 0.00% monitor_rpcbind 1071 root 12 58 0 35M 14M sleep 0:01 0.00% java 367 root 6 58 0 2632K 1952K sleep 0:01 0.00% vold 449 root 1 59 0 6784K 5112K sleep 0:01 0.00% jre 426 root 1 59 0 5672K 4720K sleep 0:01 0.00% jre 18 root 4 59 0 3088K 2240K sleep 0:01 0.00% vxconfigd top列表的后半部分表明了在系统运行的各个进程的许多信息,包括PID、进程的所有者、优先值、应用程序的大小、驻在内存中的部分的大小、它的当前状态(正在运行或休眠)、占用的CPU时间以及命令名。例如vxconfigd守护进程是以用户root的身份运行(PID=18),大小是3088K。

18

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

2.5 使用网络服务

2.5.1 rlogin命令

rlogin这个命令的作用有些类似于telnet命令,如果键入 $rlogin hostname

后,将自动地登录上名为hostname的机器。而登录所用的帐号将默认为等同于当前在本地主机正使用的帐号,所有rlogin不会再出现要求你键入帐号名的提示符。

另外,如果系统管理员已经按要求配置好了系统中一个/etc/hosts.equiv的文件后,使用rlogin命令时,连键入密码的提示符都不会出现,这样将使登录操作更简单快捷。如果事先在系统的主目录下建好一个名为.rhosts的文件,同样也可以使我们在登录主机时不需要键入密码。

同telnet一样,如果要同远程主机断开联接,键入exit或简单地同时按Ctrl+d键就可以退出了。

只有在机器间配置了信任主机的情况下可以使用此命令来远程登录到其他机器上。

2.5.2 rcp命令

rcp的含义就是远程执行cp命令操作。一般命令格式如下: $rcp host1:source host2:dest

这条命令的意思是将主机host1上的文件source拷贝到主机host2上的文件dest里,当然,文件source和dest必须要有完整的路径名。 例子:

从本地主机bambam将文件funfile拷贝到主机fred上的/tmp/funfile中: $rcp funfile fred:/tmp/funfile

将主机fred上的/tmp/funfile文件拷贝到主机barney上的/tmp下: $rcp fred:/tmp/funfile barney:/tmp 以上所有规则均适用于cp和rcp命令。 注意:

/etc/hosts.equiv和.rhosts这两个系统文件必须正确配置,rcp才能正确执行。

19

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

# /etc/update &

但是更好的办法是把这条命令放在系统的/etc/rc文件中,以便每次引导系统时都会执行它。

只有在机器间配置了信任主机的情况下可以使用此命令来远程登录到其他机器上。

2.5.3 主机间的信任关系

UNIX为了提高系统管理的方便,基于TCP/IP网络,提供了主机、用户之间的信任机制。在互相信任的主机用户之间,可以不需口令,进行rlogin、rsh、rcp等操作。为了实现这种特性,UNIX使用两种不同级别的等价(equivalence)机制,分别查询目标主机上的文件/etc/hosts.equiv和主目录下的.rhosts文件来决定是否允许这种访问。系统管理员创建、维护这两个文件,提供不同级别的信任关系。 1. 主机级别的信任关系

在UNIX系统中,都有一个文件/etc/hosts.equiv(SUN和HP没有可以自己创建),此文件中可以加入远程主机的机器名(对应主IP), 如:

 

iinscp2 (iinscp2的所有用户【除了root】都可以被本主机信任) iinscp2 iinscu iinsdu (iinscp2的iinscu、iinsdu用户可以被本主机信任)

+ (所有主机的所有用户【除root】可以被本主机信任,安全级别最低,慎用)

这样iinscp2就和本机(比如为iinscp1)建立了信任关系。当iinscp2上的用户(iinscu)试图开始一个访问请求(rlogin、rsh或rcp)时,目标主机先查找文件/etc/hosts.equiv,发现iinscp2在此文件中,就查找/etc/passwd文件,查看其中是否存在和远程主机登录名相同的用户,如果存在,则用户不提供口令就可以实现远程访问。 几点说明:

主机级别的信任关系不包括root用户,所以在/etc/hosts.equiv中如果有这种配置:iinscp1 root 是没有任何意义的。

如果在/etc/hosts.equiv中没有发现发起请求的主机名,则继续进行用户级别的等价检查,查找对应用户的.rhosts文件。 如果远程主机没有同名用户(iinscu),访问被拒绝。

如果iinscu用户试图以另一个用户登录(如:rlogin iinscp1 -l iinsdu),则不会查看/etc/hosts.equiv文件,这时直接进行用户级别的等价检查,查找iinsdu用户主目录下的.rhosts文件。

20

 

IK000202 UNIX高级操作命令 ISSUE1.0

第2章 UNIX通用命令

2. 用户级别的等价

用户级别的等价使用目标帐户的主目录中的.rhosts文件。.rhosts文件的每一行包括一个主机名,以及(可选)一列用户名:

iinscp2 iinscu iinsdu (iinscp2的用户iinscu、iinsdu用户被本用户信任)

iinscp2 + (iinscp2的所有用户被本用户信任) + (所有主机的所有用户被本用户信任)

 

如果一个远程访问请求不能通过主机级的等价测试,就检查目标用户目录下的.rhosts文件,如果发现了请求方位的用户的主机名和用户名,远程主机就允许该请求,而无须提供一个口令。

21

IK000202 UNIX高级操作命令 ISSUE1.0

第3章 shell编程简介

第3章 shell编程简介

shell 不但是 UNIX 的用户交互界面,还是一门程序设计语言,系统注册进入时就会执行一个shell命令文件.profile(bsh用户)或.cshrc、.login(csh用户) 。shell的功能如下: 一、搜索命令并执行相关的程序。

二、将SHELL程序内未指定数值的变量替换为已定义的SHELL变量的值。 三、对命令进行替换。 四、用文件名生成字符串。 五、控制I/O重定向和管道。

六、提供解释性的编程接口,包括测试、分支、循环。 下面将shell中的常用命令作简单介绍。 $n 令名 $# $$ $! $* $@

命令行中参数的个数 本shell 命令的进程号 最后一个后台进程的代号 所有命令行参数 与$*相似,但其值不同 登录时进入的目录 命令的搜索目录

系统第一个提示符,一般为% 系统第二个提示符,一般为> 将命令行参数往左移n位,但$0不变

将字符串赋予变量名,以后可用$变量名引用该变量

shell 程序命令行中的第n个参数,n为0-9,当n为0时表示命

$HOME $PATH $PS1 $PS2

shift [n]

变量名=字符串 export read

变量名表 将变量名表所列变量传递给子进程 变量名表 从标准输入读字符串,传给指定变量

22

IK000202 UNIX高级操作命令 ISSUE1.0

第3章 shell编程简介

echo set env if

变量名表 将变量名表指定的变量显示到标准输出 显示设置变量 显示目前所有变量 条件执行,语法是:

if 条件 then 指令 fi

case

分支执行,语法是

case 字符串变量 in 值1) 指令...... 值2) 指令...... ... esac

while

条件为真时循环,语法是:

条件

while

do

指令......

done

条件为假时循环,语法是:

until

until 条件

do

指令......

done

变量在表中时循环,语法是:

for

for 变量名 in 字组表

do 指令......

done

23

IK000202 UNIX高级操作命令 ISSUE1.0

第3章 shell编程简介

break

从循环中退出,语法:

break n n 表示跳出循环的层数

继续循环,语法:

continue

continue n n 表示退到包含continue 语句的第n 层继续循环

退出shell

shell内部可定义函数,语法:

exit func

func 函数名() { }

将其后的串解释为表达式并计算其值,运算符前后需有空格 捕获信号,语法 trap n ,捕获信号 n (信号说明参见kill) 条件测试,语法 test [选项] 参数 指令......

expr trap test 选项:

                  

-f 文件 若文件存在且可读则真 -w 文件 若文件存在且可写则真 -x 文件 若文件存在且可执行则真 -f

文件 若文件存在且为普通文件则真 -d 文件 若文件存在且为目录文件则真 -p 文件 若文件存在且为fifo文件则真 -s 文件 若文件存在且不空则真 -z 串 若串长度为0则真 -n 串 若串长度不为0则真 串

若串不是空串则真

若串1等于串2则真 若串1不等于串2则真

串1=串2 串1!=串2

n1 -eq n2 若n1与n2数值相当则真 n1 -ne n2 若n1与n2数值不相当则真 n1 -lt

n2 若n1小于n2则真

若n1大于n2则真 若n1大于等于n2则真

n1 -le n2 若n1小于等于n2则真 n1 -gt n2 n1 -ge n2

可用 与 -a 或 -o 非 ! 将条件表达式连接起来。

24

IK000202 UNIX高级操作命令 ISSUE1.0

第3章 shell编程简介

下面是一个智能网系统中的SHELL脚本实例(csh): set path=( $path /usr/ucb /usr/dt/bin) if ( `whoami` == \"root\" ) then

alias cd 'cd \\!* ; set prompt = \"`hostname` ${cwd:t} \\! # \"' else

alias cd 'cd \\!* ; set prompt = \"`hostname` ${cwd} \\! > \"' endif stty erase ^H set history=40 alias h history alias dir ls -lF umask 002

setenv MACHINE HP

setenv INFORMIXDIR /opt/informix

setenv INFORMIXSERVER tellin_online1_net setenv ONCONFIG onconfig

setenv PATH ${PATH}:${INFORMIXDIR}/bin:${INFORMIXDIR}/lib/esql setenv LD_LIBRARY_PATH ${INFORMIXDIR}/lib:${INFORMIXDIR}/lib/esql setenv SMS_DIR $HOME/smp_run setenv SMS_RUN $SMS_DIR/bin setenv PATH ${PATH}:${SMS_RUN}:. setenv TERM vt100

setenv XENVIRONMENT $HOME/smp_run/bin/oam_menu.eng.res alias run cd $HOME/smp_run/bin alias runlog cd $HOME/smp_run/runlog alias p procs

setenv SMPDBNAME insms20 setenv SMPDBSPACE workdbs setenv SMPRECORDSPACE workdbs

25

IK000202 UNIX高级操作命令 ISSUE1.0

第3章 shell编程简介

setenv DATASYNC yes # 以下是例行工作执行开关:

setenv DoTTRS yes # 执行话单服务器接口程序 setenv DoBackup yes # 执行备份程序 setenv DoReport yes # 执行报表程序

setenv DoGetPPSCard yes # 执行历史充值卡入库 setenv BACKUPDAY 01 # 定义历史数据备份日期 cd $SMS_RUN

setenv MAX_OAM_NUMBER 4 alias start_sms run_sms start '\\!*' alias stop_sms run_sms stop alias show_sms run_sms show

从上例可看出,csh的基本语法与bsh的语法没有很大区别,但一些命令关键字不同如if...endif等。

26

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

第4章 HP-UX系统管理

4.1 HP-UX系统管理工具SAM

SAM(System Administration Manager)是HP-UX的一个菜单式操作系统管理工具。它提供以下:系统权限安全管理、 系统备份和恢复、 热备份计算机群配置(双机热备份)、 磁盘和文件系统管理、 系统内核配置、 网络和通信配置、 外设管理、 打印管理、 进程管理、 日常维护管理、用SAM进行远程系统维护、软件包管理、时间管理、用户机用户组管理、在运行SAM时,可以实时地从其帮助菜单得到各项任务的操作说明。

使用SAM降低了大部分系统管理任务的复杂程度。有了SAM,操作员进行系统管理时不必具备丰富的系统管理命令的知识就能完成任务。大部分系统管理任务都可以通过SAM完成,但有些任务只能从命令行来完成,此时需要参考HP-UX的命令手册。

4.1.1 启动SAM

启动SAM之前,一定要保证环境变量LANG已经设置为“C”。SAM的启动命令为: #sam

也可以通过命令/usr/sbin/sysadm命令来启动SAM,它与/usr/sbin/sam是等效的。启动SAM之后,可以通过“HELP”菜单得到帮助。

4.1.2 在X_Windows环境下运行SAM

只要X_Windows系统已经正确安装,并且环境变量DISPLAY的值正确指向用于显示SAM界面的主机,就可以在X_Windows环境下运行SAM。你可以用下边的命令显示DISPLAY的值: #env | grep DISPLAY 设置DISPLAY的方法为:

#DISPLAY=hostname:0.0 (Korn and POSIX shell) #export DISPLAY

#setenv DISPLAY hostname:0.0 (C shell)

27

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

hostname通过命令/usr/bin/hostname得到。

4.1.3 在字符终端运行SAM

要在字符终端运行SAM,就不需要设置环境变量DISPLAY。在字符终端上运行SAM与在X_Windows的区别是不能用鼠标操作,只能通过键盘操作菜单。

4.1.4 运行SAM进行远程系统管理

利用SAM,你可以在一个地方同时对多个HP-UX系统进行维护。这只要在SAM中选择“Run SAM on Remote System”菜单即可。当然远端系统应配置成允许远程维护。

4.2 HP系统的运行级别

HP-UX的缺省运行级别在文件/etc/inittab中定义。例如缺省运行级别为3时文件/etc/inittab中配置为: init:3:initdefault:

HP-UX包含以下运行级别:

   

Run-level s :单用户模式,主要用于系统维护

Run-level 1 :只启动系统的一些关键进程,可用于系统维护 Run-level 2 :多用户模式

Run-level 3 :需要启动NFS Server时用,此时可以export NFS文件系统

Run-level 4 :支持HP VUE环境

一般缺省运行级别定为3或4。你可以从SAM的“Routine Tasks”和“System Shutdown”控制运行级别的改变。也可以通过以下命令行改变运行级别: #shutdown

#进入单用户模式

#init [new_run_level] #进入其他运行模式

4.3 用逻辑磁盘管理器(LVM)管理磁盘

4.3.1 什么是逻辑卷

逻辑卷是一个逻辑磁盘,在I/O系统看来,它与一个物理硬盘一样,当成一个单独的磁盘来处理。但是一个逻辑卷的实际物理储存空间是分布在一个或多个物理硬盘上的。

28

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

与物理磁盘一样,逻辑卷可以用来创建文件系统、原始数据储存设备、dump空间和swap空间。不同的地方是,逻辑卷的大小可在创建时设定其空间的大小,并且在以后可以根据需要扩大或缩小其空间,因为逻辑卷是由软件控制的,其空间是可以跨磁盘分布的。

先看一个使用LVM建立逻辑卷的简单例子:

1. 选择一个或多个磁盘:(使用ioscan去寻找新加入的硬盘,并假设所寻到的新盘名为c0t0d1) #ioscan -fun -C disk

2. 初始化每一个磁盘作为LVM盘(警告:这将破坏磁盘上所有数据) #pvcreate /dev/rdsk/c0t0d1 3. 把初始化后的LVM盘加入到卷组 a: 为卷组建立一个目录: #mkdir /dev/vgnn

b: 使用mknod建立一个名为group的设备文件: #mknod /dev/vgnn/group c 0xNN0000 c: 指定LVM盘建立卷组:

#vgcreate /dev/vgnn /dev/dsk/c0t0d1 4. 以上步骤正确无误后,在此卷组上建立逻辑卷

#lvcreate /dev/vgnn //缺省的卷组命名是lvoln(n = 0.....n) #lvcreate -n lvol1(卷名) /dev/vgnn //自定义的卷组名方式

从上例可以看出,建立一个逻辑卷,需要分三步:一是在已知新加入的磁盘名的基础上,使用pvcreate命令初始化磁盘;二是把此磁盘加入磁盘组(卷组);三是分划卷组为逻辑卷。

4.3.2 逻辑磁盘管理器简介

逻辑磁盘管理器(LVM)是HP-UX中的用于磁盘设备管理工具。逻辑磁盘管理器通过划分逻辑卷把一到多个磁盘重新用软件分成多个逻辑磁盘来管理。并在此基础上提供磁盘镜像、RAID、磁盘带化(Disk Striping)等功能,提高数据的可靠性、数据I/O的吞吐量。

29

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

4.3.3 逻辑磁盘管理的基本规则

要用逻辑磁盘管理器管理一个物理硬盘之前,必须先把该硬盘初始化成物理卷(Physical volume)。

物理卷必须加入某个逻辑卷组(Volume Group)。一个系统中可以包含多个逻辑卷组,每个卷组又包含多个物理卷。

一个磁盘只能加入一个卷组。最大卷组数由系统的内核配置参数maxvgs确定。

一个逻辑卷组最多能包含255个物理卷。

逻辑卷组的磁盘空间可以分配到多个逻辑卷中去,每个卷组的磁盘空间最多可以分配给255个逻辑卷。

每个逻辑卷的磁盘空间可以映射到一个物理盘上或由多个磁盘的一部分空间。

逻辑卷可以用来创建文件系统、原始数据存储设备、dump空间和swap空间。 如果某个逻辑卷的空间跨越了多个物理卷,除非其中包含HP_IB类别的磁盘,否则不要求所有磁盘满足同样的磁盘接口。

Pysical VolumesDisks500MB/dev/dsk/c0t0d0500MB/dev/dsk/c1t0d0500MB/dev/dsk/c2t0d0VolumeGroup(Pool of Disks)1500MB/dev/vg01/lvol1/dev/vg01/lvol2LogicalVolumes1500MB/dev/vg01/lvol3

图4-1 把磁盘空间分区成逻辑卷

4.3.4 逻辑磁盘管理器的工作机制

LVM把每个物理磁盘分化成多个可寻址的单元:物理分区(PE:Pysical Extent)。物理分区从磁盘的起点,以地址为0开始顺序的分布在磁盘上,每

30

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

个物理分区的地址比上个分区的地址大1。物理分区的大小在创建逻辑卷组时定义。缺省情况下,物理分区的大小为4MB,其取值范围在1MB到256MB。 每个逻辑卷可以分为多个逻辑分区(LE:Logical Extent)。每个逻辑分区都可以映射到一个物理分区,因此,逻辑分区的大小应该等于物理分区的大小。显然,一个逻辑卷的容量由它包含逻辑分区的数量确定。

当LVM把磁盘空间分配给逻辑卷时,它自动建立逻辑分区与物理分区的映射关系。逻辑分区与物理分区一样,也是从逻辑卷的起始处开始分区,其地址也从0顺序排列。因此,不管逻辑卷的数据存放在逻辑卷组的什么地方,LVM都能通过逻辑分区与物理分区的映射关系找到数据。 命令pvdisplay和lvdisplay可以显示这个映射关系。

除了已经镜像或进行磁盘带化处理的逻辑卷的逻辑分区外,一般情况下一个逻辑分区映射到一个物理分区。对于已经进行镜像的逻辑卷,每个逻辑分区要映射到二或三个物理分区,映射的物理分区的数量取决于映射的级别,即单镜像时映射到两个物理分区;双镜像则映射到三个物理分区。

缺省情况下,LVM按物理卷加入卷组时的顺序来选择一个可用的物理分区分配给逻辑卷。但是系统管理员可以自己规定如何来为逻辑卷选择物理分区。 如果逻辑卷用于root磁盘、主swap空间、dump空间,则其物理分区一定要求是连续的。 这表明所有这些物理分区必须在同一个物理硬盘内。而其他情况下,被映射物理分区可以跨越物理磁盘分布。因此可以非常容易地把一个文件系统跨越多个物理硬盘分布。

4.3.5 逻辑磁盘管理的规划

在进行实际的配置之前建议考虑好以下问题:

逻辑卷是用于创建文件系统还是swap空间,或是dump空间、root文件系统、数据库裸设备? 逻辑卷的大小将是多少?

是否数据I/O吞吐量对你的应用非常重要? 是否需要镜像、RAID、磁盘带化处理?

  

4.3.6 与逻辑磁盘管理相关的命名规则

缺省情况下,LVM对物理卷、逻辑卷、逻辑卷组有特定的命令规则。当你从SAM或用命令对这些对象进行操作时必须输入正确的名字。 1. 物理卷的命名规则

物理卷用它们的设备描述文件名来命名。例如:

31

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

/dev/dsk/cntldm 块设备设备描述文件名

/dev/rdsk/cntldm 裸设备设备描述文件名

这里特别要注意,每个磁盘都有两个设备描述文件与其对应,分别是块设备设备描述文件和裸设备设备描述文件。其中n、l、m的取值范围为0、1、2...等数字。

2. 逻辑卷组的命名规则

逻辑卷组名对应/dev下的一个目录名,例如:/dev/vg01代表逻辑卷组vg01。组名不一定以vg开头,只要是一个合法的目录名就行,但建议名字代表其含义。

3. 逻辑卷的命名规则

逻辑卷名用其设备描述文件来命名。名字可以由超级用户来定义,也可以用系统自动定义的名字,只要是一个合法的文件名就行。系统自定的名字将有以下特点: /dev/vgnn/lvolN /dev/vgnn/rvolN

对应块设备 对应字符设备

vgnn是逻辑卷所属的卷组的名字,N的取值范围为0、1、2...等数字。显然每个逻辑卷都有两个设备描述文件与其对应,分别是块设备设备描述文件和字符设备设备描述文件。 4. 物理卷的命名规则

对于物理卷命名的唯一是,在同一个组内,物理卷的名字必须是唯一的。例如vg02有两个物理卷,其名字分别是:/dev/vg02/pvg01和/dev/vg02/pvg02。

4.3.7 使用SAM提供的逻辑磁盘管理工具

SAM能完成大部分虚拟磁盘管理工作,但不是全部。SAM能完成的工作有:

     

创建或删除逻辑卷组。

增加或删除逻辑卷组中的磁盘(或物理卷)。 创建、修改、删除逻辑卷。

在逻辑卷上创建一个文件系统或修改其容量。 配置或修改用于swap、或dump的逻辑卷。 创建、修改镜像化处理的逻辑卷。

这些任务也可以直接采用命令行的方式来完成。

32

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

4.3.8 使用命令行逻辑磁盘管理工具

用于逻辑磁盘管理的命令及其说明如表表4-1到0所示:

表4-1 物理卷管理的命令及其说明

物理卷管理功能 创建物理卷 修改物理卷 显示物理卷信息 从一个物理卷移动数据到另一个物理卷

表4-2 逻辑卷组管理的命令及其说明

命令 pvcreate pvchange pvdisplay pvmove 逻辑卷组管理的命令 创建物理卷组 修改物理卷组 删除物理卷组 备份逻辑卷组信息 从配置文件恢复逻辑卷组配置 显示逻辑卷组信息 输出逻辑卷组及其逻辑卷 输入逻辑卷组及其逻辑卷 扫描所有物理卷查询卷组及逻辑卷

表4-3 逻辑卷管理的命令及其说明

命令 vgcreate vgchange vgremove vgcfgbackup vgcfgrestore vgdisplay vgexport vgimport vgscan 逻辑卷管理的命令 创建逻辑卷 修改逻辑卷 显示逻辑卷信息 扩展逻辑卷信息 减小逻辑卷容量 删除逻辑卷 配置一个逻辑卷作boot、swap、dump用 取消一个逻辑卷作boot、swap、dump用 在逻辑卷中扩展其中某个文件系统的容量 把一个镜像的逻辑卷分成两个逻辑卷 把两个逻辑卷合成一个逻辑卷

回到我们建立逻辑卷的例子,并详细解释各命令的意义:

lvcreate lvchange lvdisplay lvextend lvreduce lvremove lvlnboot lvrmboot extendfs lvsplit lvmerge 命令 33

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

选择磁盘用于创建物理卷,命令ioscan可以显示系统中有哪些磁盘及其驱动设备,如果是新插入磁盘组的磁盘,必须使用以下命令让系统为此新盘分配一个名字。

#ioscan -C -fun disk

把磁盘初始化成物理卷。注意,此操作将破坏磁盘上的原有数据: #pvcreate /dev/rdsk/c0t0d0

#把磁盘当成字符设备处理

把所有物理卷加入到逻辑卷组: #mkdir /dev/vgnn

#创建卷组目录

#mknod /dev/vgnn/group c 0xNN0000 #创建设备描述文件

c代表group文件是一个字符设备描述文件,是主参数,一般不变。0xNN0000是16进制的副参数,需要注意的是NN的取值在组内必须唯一。 #vgcreate /dev/vgnn /dev/dsk/c0t0d0 /dev/dsk/c1t0d0 ...... 创建逻辑卷组,并使它包含上边创建的所有物理卷。 创建逻辑卷:

#lvcreate -n lvol1 /dev/vgnn 生成/dev/vgnn/lvol1,它代表一个逻辑卷。 从上面的叙述可知,此时逻辑卷并没有分配到空间,也就是说逻辑卷的逻辑分区(LE)还没有与物理卷的物理分区(PE)建立对应关系,我们可以使用lvextend来建立这种联系:

#lvextend -l 25 /dev/vg01/lvol1 /dev/dsk/c0t0d0

其中,选项“-l”表示制定的空间大小是25个LE(或PE),此处我们使用了缺省的LE大小,即4MB,所以,25个LE即是100MB的磁盘空间。我们也可使用“-L”直接指定磁盘空间的大小(MB),如: #lvextend -L 100 /dev/vg01/lvol1 /dev/dsk/c0t0d0

4.3.9 磁盘的镜像

为了保证数据的安全,我们需要为数据做一个备份,在逻辑磁盘管理中,这个备份的数据就是原数据的镜像。

如果数据没有镜像,当磁盘损坏时,所有的数据将无法恢复,并且所提供的服务也会停止,如下图4-2所示:

34

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

图4-2 无镜像的情况

而当做了镜像后,情况则如图4-3所示:

图4-3 有镜像的情况

从对比可以看出,对于重要的数据,必须要进行镜像规划,保证数据的安全性和服务的连续性。

镜像的实质是一个逻辑分区(LE)对应两个或两个以上的物理分区(PE),一个逻辑分区对应两个物理分区叫做单镜像,而一个逻辑分区对应三个物理

35

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

分区叫做双镜像,如下例所示,我们把一个逻辑卷镜像到一个指定的物理卷(单镜像):

#lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c0t0d0

4.4 HP双机软件

MC/ServiceGuard ( Multi-Computer/ServiceGuard ) 是HP推出专门用来保护关键业务应用免遭软、硬件故障影响的特殊软件。

使用MC/ServiceGuard,多个节点(系统)被组织成一个企业群集,为本地网(LAN) 上的客户机提供高可用性的服务。MC/ServiceGuard监视程序监视每一个节点状态,并且对出现的故障很快做出反应,使应用程序的停顿成为最小。

MC系统切换发生在两种情况下:一种情况是由于系统的硬件出现故障或者应用程序故障,此时的切换是自动进行的;另一种情况是根据实际操作环境需要进行人为地切换。有两种办法来实现后一种切换。 方法1 使用cmhaltnode 命令来停止运行有程序包的节点。 # cmhaltnode -f nodename

这样,在停止该节点的同时,应用程序包会自动迁移到另外一个节点上。 方法2 使用cmhaltpkg 来起停应用程序包 1.用 cmhaltpkg 命令来停止需要迁移的程序包 # cmhaltpkg pkgname

2.用cmrunpkg 来重新在别的节点上运行程序包 # cmrunpkg -n nodename pkgname 3.用 cmmodpkg 修改切换属性 # cmmodpkg -e pkgname 一般来说,建议采用方法2

下面介绍几个系统管理员用得上的、有关MC的命令: 1. 手动启动MC/SG

Start SG daemons and form a new cluster #cmruncl [-f] [-v] [-n NN...]

[-f] Force cluster startup without warning message

36

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

[-v] Verbose output

[-n ] specific name(s) of node(s) to 2. 单点启动后,加入另一个节点:

Start SG daemon on node(s) and join a cluster # cmrunnode [-v] [NN...] [-v] Verbose output 3. 实现节点切换

切换分两种:本地切换 ( Local Switch ) 和 切换 ( Switch )

当主节点出现网卡故障 ( MAC address or Hardware State Down ) 时,首先会进行本地切换,备份网卡开始工作;如果此时备份网卡也有故障,则系统会进行切换,备份节点接管工作。

可以手工模拟这些故障进行故障诊断或检测。 4. 监测 Cluster 运行状态

view information about the current SG cluster

# cmviewcl [-v] [-n NN]... [-p PN]... [-l {package|cluster|node}] [-v] Verbose output

[-n ] View information only about the specific node_name(s). [-p package_name... View information only about the specific package_name(s).

[-l] pkg|clus|node Display only package, cluster or node specific information. 5. 停止 Cluster 运行 halt SG cluster daemons # cmhaltcl [-f] [-v]

[-f] Force the cluster to shutdown even if packages are currently running. [-v] Verbose output

6. 停止运行某个节点而 Cluster 在其它节点继续运行 halt SG daemon on node(s) and leave the cluster

37

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

# cmhaltnode [-f] [-v] [NN...]

[-f] Force the node to halt even if there are packages running on it. [-v] Verbose output

7. 在 Running Cluster 中运行某一个包 run a SG package

# cmrunpkg [-n NN] [-v] PN... [-n ] Act on a specific node. [-v] Verbose output 8. 停止一个运行中的包 halt a SG package

# cmhaltpkg [-n NN] [-v] PN... [-n ] Act on a specific node. [-v] Verbose output 9. 改变一个包的切换属性

enable or disable switching attributes for a SG package # cmmodpkg [-v] [-n NN]... {-e|-d} PN... [-v] Verbose output

[-n ] Modify attributes on specific node(s) - else globally mod. -e enable -d disable

PN - package(s) whose switching attributes are changed 注:NN = node_name PN = package_name 10. MC中应保护的文件

/etc/cmcluster 下的文件是MC的配置文件,注意保护。

/.rhosts, /etc/passwd, /etc/group, /etc/hosts, /etc/rc.config.d/cmcluster, /etc/lvmrc, 等文件的改动均会关系到MC的正常运作,请注意。 11. 故障诊断

系统日志文件

38

IK000202 UNIX高级操作命令 ISSUE1.0

第4章 HP-UX系统管理

/var/adm/syslog/syslog.log

该文件保护cluster的状态、主要事件和各运行的命令及结果

cluster日志文件

存在于每一各应用程序包(package)的控制脚本和配置脚本的目录中,如:/etc/cmcluster/pkg1。该文件包含了每次运行cluster命令产生的详细过程和结果,对于诊断cluster的故障具有极其重要的作用。

cluster常见错误

共享逻辑卷组及其逻辑卷信息不一致,主要是由于在一台主机中添加共享逻辑卷时,没有在另一台主机上进行相应的同步操作。 两台主机中使用共享逻辑卷组的用户或所属组的信息不一致。 网络配置出错。

找不到cluster中运行的脚本或脚本中使用的文件。 缺乏脚本中的运行环境变量。 脚本文件编写有错。

故障诊断的方法

检查应用程序报的IP地址 # netstat -in

检查系统日志文件和应用程序包日志文件。 检查cluster和应用程序包的配置文件。 检查应用程序包的控制文件。

使用cmscancl命令生产所有节点的网络配置信息、共享逻辑卷组信息等等,并进行相应的比较。

39

IK000202 UNIX高级操作命令 ISSUE1.0

第5章 Solaris系统管理

第5章 Solaris系统管理

5.1 Solaris运行级别管理

5.1.1 Sun Solaris运行级别

从OpenBoot启动后,solaris有几个不同的操作模式,称为“运行等级”或“init状态”,之所以这么叫是因为常用init命令来改变运行等级。每一个运行等级都代表不同的管理目的,而且是完全不相关的(也就是说,一个系统任何时候只能在一个init状态上)。 0

硬件管理模式(维护状态)。处于OpenBoot的ok提示符下,并可确

保可安全关电。

1 单用户模式(维护模式),只可访问根文件系统。用户无法登录。 2 多用户模式,用户可登录使用系统。

3 扩展的多用户模式,使本地文件系统在网络上可用(NFS)。 4 可选模式,可在运行中定义为多用户模式(很少用)。

5 停止系统运行并让系统进入可安全关闭电源的状态,如果可能,则直 接关闭电源。

6 停止系统运行并重新启动系统。 S

用于系统管理任务和修复被损坏的文件系统(如fsck)的单用户状态。

5.1.2 改变系统运行级别命令

# init 0, halt, shotdown, stop+a,sync,go # init 1, single user, boot -s, init s # init 2, multiuser, unshare net # init 3, multiuser, deafult # init 5, halt, power off # init 6, reboot to level 3 # init s, init 1, boot -s

40

IK000202 UNIX高级操作命令 ISSUE1.0

第5章 Solaris系统管理

可以通过下面语句确定当前系统的运行等级: #who –r

5.2 OpenBoot(Prom) 常用命令

在SPARC硬件支持的solaris系统中有一个重要的功能就是OpenBoot的固件检视系统,它负责启动前的一些重要任务:

通过键入下面的字符启动solaris操作系统:

ok>boot

设置系统配置参数,如启动设备,他可以是几个硬盘之一(由设备的全路径名确定),或者是网络上的一台其他主机,也可以是一个CDROM驱动器。

对系统设备执行简单的诊断和测试。

OpenBoot(Prom) 常用命令: ok> help

帮助命令

显示OpenBoot为你的系统中的相关硬件发布的信息 显示prom版本信息 系统设备别名

ok> banner ok>version ok> devalias

例如:devalias cdrom1 /sbus/SUNW,fas@e8800000/sd@5,0 ok> nvalias

prom命令/信息别名 显示所有scsi设备 显示prom系统环境变量 设置prom系统环境变量

ok> probe-scsi-all ok> printenv ok> setenv 例如:

setenv auto-boot false

setenv boot-device disk net cdrom ok> set-defaults ok> reset

设置prom系统环境变量为缺省值

41

IK000202 UNIX高级操作命令 ISSUE1.0

第5章 Solaris系统管理

5.3 应用软件常用安装/删除命令(add/delete software)

Solaris中一个最有创新的特点是软件包管理。它使管理员可以很简单的在系统中安装、修补、升级和删除一个软件。

5.3.1 管理软件包

软件包管理的主要任务有用pkgadd命令加入包,用pkginfo和pkgchk命令检查已经安装的状态和用pkgrm命令删除包。 1. 加入软件包

语法:pkgadd –d dir pkginst pkgadd –d pkginst

安装以目录形式发布的软件 安装以软件包流形式发布的软件

这里的dir是软件包存储的目录,pkginst是你要加入的软件包。 例如加入一个储存在/tmp目录下的名叫SUNWzip的软件包: pkgadd –d /tmp SUNWzip

当软件包加入后,系统可能会提出一些有关安装目录和冲突的问题。例如,当加入GZIP软件包时,你可能会看到如下的信息:

The following files are already installed on the system and are being used by another package:

*/usr/local/bin */usr/local/info

- confict with a file which does not belong to any package.

Do you want to install thest conflicting files [y,n,?,q]

在多数情况下,错误信息都是有关所有权不同和权限不同的,你可以选择安装这些冲突的文件而不会使你的系统产生其他问题。 2. 检查软件包 $pkginfo …

system TWSvplr TWS platform links

42

IK000202 UNIX高级操作命令 ISSUE1.0

第5章 Solaris系统管理

system TWSvplu TWS usr/platform links

system VRTSvmdev VERITAS Volume Manager, Header and Library Files

system VRTSvmdoc VERITAS Volume Manager (user documentation) system VRTSvmman VERITAS Volume Manager, Manual Pages system VRTSvmsa VERITAS Volume Manager Storage Administrator system VRTSvxvm VERITAS Volume Manager, Binaries utility top top.3.5b8 SPARC bit Solaris 8 … $pkgchk

软件包的一个最有好处的一点是你总是可以检测一个已经安装得到软件包的完整性,从而确定它的内容从安装时起就没有改变。 3. 删除软件包

当很多产品要更新时,你就不得不在安装新版本之前删除那些产品中已经存在的包。 #pkgrm pkginst

pkginst是你想要删除的软件包。

5.3.2 管理补丁

补丁是为了纠正存在在操作系统或应用软件中的缺陷和问题。补丁有两种类型:“point”补丁程序和“cluster”补丁程序。Point补丁程序通常是针对单个问题的处理,cluster补丁则是point补丁程序的集合,作为一个组发布。 1. 安装补丁

#patchadd patchname

该命令用于安装point补丁。Patchname是补丁的名字,这里需要输入其完整的路径。通常的格式是patchnum-patchver,patchnum是补丁的序号,patchver是它的版本号。例如,补丁程序103738-02对应的是补丁程序103738的版本2。

安装cluter补丁较为简单,它通常是以一个Z文件提供。首先解开: #cd /var/tmp

43

IK000202 UNIX高级操作命令 ISSUE1.0

第5章 Solaris系统管理

#gzcat *Z |tar –xfv-

补丁会解压到一个以软件包命名的目录下,在该目录下通常会有一个类似于install_cluster的脚本,仔细阅读readme文件后,直接执行该脚本即可。 #./install_cluster 2. 显示补丁信息 #showrev –p 3. 删除补丁

#patchrm patchname

5.4 硬盘分区及格式化

# foramt (可显示硬盘类型, 大小, 分区情况. 可重新分区, 格式化等) Searching for disks...done AVAILABLE DISK SELECTIONS:

0. c0t0d0 /pci@1f,4000/scsi@3/sd@0,0

1. c2t0d0 /pci@6,4000/scsi@3/sd@0,0

2. c2t1d0 /pci@6,4000/scsi@3/sd@1,0

3. c2t9d0 /pci@6,4000/scsi@3/sd@9,0

4. c3t0d0 /pci@6,2000/scsi@1/sd@0,0

5. c3t1d0 /pci@6,2000/scsi@1/sd@1,0

6. c3t9d0 /pci@6,2000/scsi@1/sd@9,0 Specify disk (enter its number):

0 >partition>p>0>1>3>4>5>6>7>print>label>format>quit>quit

44

IK000202 UNIX高级操作命令 ISSUE1.0

第5章 Solaris系统管理

0 root wm 0 - 3514 3.62GB (3515/0/0) 7592400 1 swap wu 3515 - 3757 256.29MB (243/0/0) 524880 2 backup wm 0 - 3879 4.00GB (3880/0/0) 8380800 3 unassigned wm 3758 - 3879 128.67MB (122/0/0) 263520 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 unassigned wm 0 0 (0/0/0) 0

45

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务