分享
 
 
 

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

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

1.4.2使用ps报告

当需要哪些进程或系统管理进程正在运行时,使用ps -e选择项,如果还想得到过程的更详细信息,用ps -el选择项。各选择项的详细说明参考ps(1)命令手册。

下面是如何发现潜在问题的指南:

*查看有没有由同一用户所有的相同作业,若有,这可能是由于某用户运行了启动一组后台作业的shell程序,但没有等待作业终止,找用户谈谈,看是否是这种情况,如果必要,用kill命令杀死其中一些进程,有关杀死一个进程的详细介绍参见后面几节。

*查看TIME域,看哪些进程占用了大量的CPU时间,这样的进程可能导致死循环。

*查看C域,找出占用大量CPU时间且不重要的进程,如果认为此进程确实不值占用如此多的CPU时间,可以用priocntl命令降低它的优先级,有关priocntl命令的详细信息,参考prioentl(1)手册。

*查看SZ域,找出占用太大内存的进程。如果某个进程占用了过于大的内存,将它杀死,如果系统中有许多进程都需要大量内存,则可能需要扩充内存。

*查找占用CPU时间越来越多的失控进程,可以用带-f可选项的ps命令查看其超始时间(STIME),也可直接看其TIME域所指的CPU累计时间。

1.4.3杀死进程

有时用户需要彻底地消除一个进程,这时用kill命令,kill命令的格式为kill-,此处是一个数或一个名称。

注意:仅当进程不能正常退出时用kill命令。

有时用kill命令后进程仍未死掉,最常见的三种情况:

;进程退出前正在等待一个设备(如磁带机)完成某种操作。

;进程正在等待由于nfs出现问题而无效的资源,在这种情况应该用kill-QUIT命令来杀死一个进程。

;进程处于僵尸态,正如ps报告的消息所显示,僵尸进程已经释放了它所占资源,但还没有接收到父进程的回应,一般接收到回应后删除对应的进程表项,在下次启动系统时,僵尸进程被消除,僵尸(Zombies)进程不影响系统性能,所以用户不必删除它们。

要杀死一个进程:

1、 变成超级用户,要杀死一个非你拥有的进程,你必须成为超级用户。

2、 键入ps -e,将显示出一组进程,使用第一栏的PID(进程ID)号作为下一步的输入,如果你知道是哪个进程出了问题,则可以键入:

ps -e | grep 来找到其进程ID

3、 键入kill-15 ,若仅键入kill,无参数,则缺省的信号是15。

4、 键入ps -e,检查进程是否已经终止,如果进程还存在,则到第5步。

5、 键入kill-9 ,这个进程应该被终止。 键入man -s5 signal,查看kill所使用的信号描述。

例如:如果gtxa系统上的Open Windows 死了,你必须从另一个系统远程注册来杀死此进程。

elm% rlogin gtxa

Password:

gtxa% ps-e │ grep openwin

PID TTY TIME COMD

2212 pts/0 0:00 openwin

2213 pts/1 0:00 grep openwin

gtxa # kill 2212

gtxa # exit

gtxa% logout

elm%

1.5基本管理工具

Solaris系统软件提供以下两种管理工具:

*一组通用的操作系统命令

*具有图形用户接口的管理工具(Administration Tool)。

1.5.1经常使用的命令

下面几节简单地介绍基本的Solaris命令,你很可能会使用它们作为系统管理例程的一部分,更详细的介绍参见第二章中的“Basic OS Commands”及附录A列出的SunOS 4.x命令与SunOS 5.x命令的对照表。

1.5.1.1在文件系统中移动

Solaris系统软件是有一个层次结构的文件系统,当管理系统时,你需要了解目前处于文件系统的哪个位置、如何转到不同的目录。

1.5.1.2查看在文件系统中所处的位置

要知道目前处于文件系统的哪一层,键入pwd。pwd(打印工作目录)命令显示当前目录:

gtxa&pwd

/etc

gtxa%

1.5.1.3改变目录

要改变目录,键入cd 。cd(改变目录)命令使你进入所键入的目录中:

gtxa% cd /usr

gtxa%% pwd

/usr

gtxa%

如果仅键入cd而没键入路径名,你就返回注册目录下。

1.5.1.4查看文件的有关信息

用ls命令可以显示目录内容以及文件的许可权、符号链、所有者、组、文件长度(字节数)、修改日期及时间和文件名,许多用户存取文件出错的原因,追根底在于拥有不正确的许可权或所有权,有关此类问题的详细说明见第10章“识别文件存取问题”。

1.5.1.5显示文件信息

要显示某个文件的有关信息,键入ls -1 ,则显示许可权、符号链、所有者、组、文件长度(字节数)、修改日期及时间和文件名。

要看目录中的全部文件,键入ls -1a,有关ls的选择项清单可参见命令手册。

gtxa% ls -1 /etc/passed

-r--r--r--lrootsys659 Feb 24 17:28/etc/passed

gtxa%

1.5.1.6查找一个文件

要从根目录开始搜索寻找到一个文件, 就键入find $HOME -name -print. $HOME变量表示查找从根目录开始。 -name选项表示要查找指定的文件名,-print 选项要求显示出查找的结果。如果没找到中指定的文件则系统回到提示符状态。

下面例子是查找文件core:

gtxa% find $HOME -name core -print

/home/ignatz/core

gtxa%

表1.4 find命令的可选项

可选项 说明

-fstype 查找指定类型的文件系统,通常用ufs或nfs中的文件

-prune 限制搜索到指定的目录

-nouser 查找不属于/etc/passwd中用户的文件

-nogroup 查找不属于/etc/group中组的文件

-atime 查找在最后天被存取过的文件

-mtime 查找在最后天被修改过的文件

-ctime 查找在最后天被改变过的文件, 这种改变包括改变文件的属性。如链接数、所有者或组

-Xdev 限制只对一个文件系统搜索

有关find命令可选项的完整说明见find(1)。

1.5.1.7查看一个文件的类型

某些情况下需要确定一个文件的类型,如要查看一个文件的类型,则键入file 。输出结果是指定文件的文件类型。

例如:如果一个用户试图执行一个无执行许可权的ASCII 文件或空文件,查看文件的类型可以得知此文件是ASCII 文件或空文件而不能执行。

以下是空文件的例子:

gtxa% file junk

junk: empty file

gtxa%

以下是ASCII文件的例子:

gtxa% file junk

junk: ascii text

gtxa%

以下例子中,文件是具有可执行许可权的文本文件,所以file命令报告该文件可执行,且是文本文件。

gtxa%chmod 777 junk

gtxa% file junk

junk: commands text

gtxa%

你也可以用ls -1命令来查看某文件是否有执行许可权。

可以用file *命令查看一个目录中全部文件的类型。文件按字母顺序列出,后面跟文件类型:

gtxa% file *

coterie: directory

course: ascil text

dead. letter ascii text

ksyms English text

people: directory

personal: directory

showrev: ascii text

status: directory

text: directory

toodo: ascii text

gtxa%

1.5.1.8查看文件中的信息

用grep和egrep命令可查找文件或命令输出的某些特定信息。

1.5.1.9查找文件中的字符串

键入grep 可查找文件中的指定字符串,且显示文件可包含该字符串的行。

例如:查找passwd文件中包含csh的行:

gtxa% grep csh /etc/passwd

ignatz: 6693: 10:Ignatz 64607:/home/ignatz: /bin/csh

fred: 14072:10:Fred Lux:/home//home/fred:/vin/csh

gtxa%

同时查找多个文件的方法是:在命令中输入多个文件名,它们之间以空格分开;或者用无字符代文件名(或与文件名一起使用)。

为显示出不包含某字符串的行,可以键入grep -v 。

查找具有某种模式的输入行,可以将grep以管道的方式与许多管理命令结合起来使用。

例如:要查找某一用户当前的全部进程,可以将ps命令和grep结合起来使用,并查找该用户名,键入ps -e│grep 。即显示该用户名的清单。可用下面的命令查找Open Windows的全部进程:

gtxa%ps -e │grep openwin

PID TTY TIME COMD

2212 pts/0 0:00 openwin

gtxa%

1.5.1.10查看文件

毫无疑问,人们要花很时间查看文件的内容,需要查看整个文件时可以用more命令,当只需看文件尾的内容时(如日志(log)文件),可用tail命令来显示文件的最后10行,当重要信息在文件头时,可用head命令显示文件的前10行。

1.5.1.11浏览文件

可以键入more 来浏览文件,文件一次只显示一屏,按空格键显示下一屏。当你用more浏览文件时,若想查找文件中的某个字符串,可以键入/。屏幕滚到你要查找的字符串的位置, 并在窗口顶部显示要找的字符串的“... skippin”信息。如果未找到,则屏幕不滚动并显示出“Pattern not found”。

例如:要查找/etc/mail/aliasses文件中的Local aliases串, 可键入/Local aliases.

/Local aliases

... skipping

# # # # # # # # # # # #

# Local aliases below #

# # # # # # # # # # # #

注意:在more命令中一定要用正确的大小写字母。上例中,如果你键入了/local aliases,则会告诉你没有找到。

为了查找下一个匹配的字符串,键入n。键入q退出more命令,显示shell 提示符。

为显示shell intr 字符,可键入stty -a,就显示stty的设备清单,下列中:^h(退格键)是删除字符:

gtxa%

speed 9600 bau;

rows=35; columns=80; ypixel =9; xpixels=0;

eucw 1:0:0:0, scrw 1:0:0:0

intr=^c;quit=^│; erase=^?;kill=^u

eof=^d; eol+^; eo12=;swtch=;

start=^d; stop =^s;susp=^z;dsusp=^y;

rprnt=^r; flush =^o; werase=^w; lnext =^V;

parenb-parodd cs-cstopb hupcl cread-clocal -loolk -

crtscts-parext

-ingbrk btkint ignpar-parmrk-inpck istrip -inncr -

igncr icrnl-iucle

ixon-ixany-ixoff imaxbel

isig icanon-xcase echo echoe echok-echonl-noflsh

-tostop echoctl -echoprt echoke -defecho -flusho -

pendin inxten

opost-olcuc onler -onocr -ofill-ofdel

1.5.1.12查看文件尾

若要查看文件尾,键入tail , 显示出文件的最后10行(缺省情况),下例显示了/etc/lp/system文件尾:

gtxa% /usr/bin/tail /etc/lp/system

#

# Kepler:x:-: s5: -:n:10:-:-:SVR4.0 OS

# fubar:x:-bsd:10:n-:-:BSD OS

# Galialeo:x:-:s5:-30:10-:-:

# # # # #

billboard:x-:bsd:-:n:10:-:-:

homeboyl:x-:s5:-:n:10-:-:

regal:x:-:s5:-:n:10-:-:

mrplod:x:-:s5:-:n:10:-:-:

gtxa%

缺省时,head和tail命令显示10行,可靠用-n任项来控制显示行数,用你要显示的行数代替n。例如:要显示最后20行, 可键入tail -20 。

注意:tail命令最多能显示4096字节(大约400行)。

1.5.1.13查看文件头

若要查看文件头,可键入head这时显示出头10行

下例中显示/etc/password文件:

gtxa% /usr/bin/head /etc/pased

rood:x:0:1:0000-Admin(0000):/:sbin/sh

daemon:x:1:1:0000-Admin(0000):/:

bin:x:2:2:0000-Admin(0000):/var/adm:

sys:x:3:3:0000-Admin(0000):/:

adm:x:4:4:0000-Admin(0000):/var/adm:

lp:x:71:8:0000-lp(0000):/usr/spool/lp:

smtp:x:0:0:mail daemon user:/:

uucp:x:5:5:0000-uucp(0000):/usr/lib/uucp:

nuucp:x:9:9:0000-

uucp(0000):/var/spool/uucppublic:/usr/lib/uucp/uucico

listen:x:37:4:Network Admin:/usr/net/nls:

gtxa%

1.5.1.14改变文件的所有权和许可权

用户的许多问题可能是由文件的所有权和许可权问题产生的,用ls命令可查看文件的所有权和许可权,如果要改变它们,可用:chown、chmod和chgrp命令。

*改变文件所有权

你必须拥有一个文件或目录(或者你是超级用户)你才能成为属主

1>键入ls -1 。文件的属主显示在第三列中

2>进入超级用户

3>键入chown . 所有权按赋予指定的新属主文件。

gtxa% ls -1 quest

-rw-r--r--1fred staff 6023 Aug5 12:06 quest

gtxa% su

Password:

# chown ignarz quest

# ls-1 quest

-rw-r--r--lignatzataff6023 Aug5 12:06 quest

#

更详细的介绍请参见第10章。

* 改变文件的许可权

表1.5列出的设置文件许可权的8进制值。可以用三个这样的数来分别设置属主、组和其它用户的许可权。例如:644 说明属主有读/写权限,同组用户和其它用户有只读权限。

表1.5 文件权限的八进制值

值 说明

0 无权限

1 只可执行

2 只可写

3 可写、可执行

4 只读

5 可读、可执行

6 可读、可写

7 可读、写、执行

1>键入ls -1 。列表显示出文件当前的权限。

2>键入chmod 。改变文件的权限变为你指定的值。

注意:可以用元字符(如* ?)替换文件名,或与它们一起使用来更改多个文件或一个目录中所有文件的权限。

下例中,将一个文件权从666改为644。

gtxa% ls - 1 quest

-rw-rw-rw-lignatzstaff 6023 Aug5 12:06 quest

gtxa% chmod 644 quest

gtxa%ls -1 quest

-rw-r--r--lignatzstaff6023 Aug5 12:06 quest

gtxa%

1.5.1.15改变文件组

若要改变文件组,键入chgrp 。改变指定文件的组ID

$ls -lg junk

-rw-r--r--l other 0 Oct 31 14:49 junk

$chgrp 10 junk

$ls -lg junk

-rw-r--r--l ataff 0 Oct 31 14:49 junk

组ID号在Group数据库或本地/etc/group文件中定义, 关于组的详细信息请参见第7章。

1.5.1.16设置或显示系统环境

shell使用shell初始化文件中给出的一组说明来维护环境,用户也可以直接发命令给shell来修改shell从环境变量中得到有关环境的信息。Solaris系统软件提供7个缺省的环境变量。

*PSI:定义shell提示符。Bourne和Korn shell的缺省提示符是$。C shell的缺省提示符是%,任何shell中root的缺省提示符皆是#。用户可以在.profile,.login 或.cshrc 文件中下义不同的shell提示符。

*HOME:定义用户主目录的绝对路径。作为注册进程的一部分,自动定义HOME的缺省值,并且设置为/etc/passwd 文件中说明的注册目录。当键入cd命令且无参数时,shell转到HOME 变量所确定的目录之下。

*LOGNAME:定义用户的注册名。作为注册进程的一部分,LOGNAME的缺省值被自动定义且设置为/etc/passwd文件中说明的注册名。

*PATH:列出一组目录。当用户敲入命令后,shell 按顺序从这些目录中查找要执行的程序。如果一个命令所在的目录不在该查找路径中,则用户必须键入该命令的全部路径。做为注册进程的一部分,PATH的缺省值是按.profile(Bourne和Korn shell)或.cshrc(C shell)文件中的说明设置。查找路径的顺序是非常重要的。当同名的命令在不同的目录存在时,执行的是第一个找到的命令。例如:假设PATH(以Bourne 和Korn shell方式)定义为PATH =/bin:/usr/bin/:usr/sbin:$HOME/bin,在usr/bin和/home/jean/bin目录中均有名为sample的程序,当用户不键入路径,而只是键入sample命令时,则执行/usr/bin目录中的sample程序。

其它环境变量包括:

*LPDEST:设置用户的缺省打印机

*OPENWINHOME:设置Open Wimdows可执行码的路径

*DESKSET:设置DESKSET的可执码的路径

*LANG:设置本地语言,可能值是:english、japanese、German、French、Swedish和Italian等

*HZ:设置Borne和Korn shell的历史

*TZ:设置时区

*SHELL:设置make,vi或其它工具所使用的缺省shell

*MAIL:告诉shell到哪去查找新的邮件

*MANSECTS:设置手册的有效章节

用户和系统管理员可另外定义自己使用的环境变量,当用户从shell命令中定义环境变量时,只要用户不退出shell,则定义的环境变量就一直起作用。退shell,则不再起作用。可将“永久”环境变量存在.profile、.login或.cshrc文件中,定义环境变量的语法依不同的shell而不同。

1.5.1.17定义Bourne和Korn shell环境变量

若要定义Bourne和Korn shell环境变量,键入=;export .

$HZ=100;export HZ

1.5.1.18定义C shell环境变量

若定义C shell 环境变量,键入setenv .

%setenv DISLAY rogue:0

1.5.1.19显示环境变量的设置

若要显示出当前的环境变量设置,键入env。

$env

HOME=/home/irving

HZ=100

LOGNAME=irving

MAIL=/var/mail/irving

MANSECTS=\1:1m:1c:1f:1s:1b;2\3:3c

[1] [2] [3] [4] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有