欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

solaris迅速查找手冊

  發(fā)布時間:2008-09-08 19:11:19   作者:佚名   我要評論
硬件系統(tǒng): 1、如何查看cup的狀態(tài)? 作者:南非蜘蛛? # psrinfo -v # mpstat 可以列出多cpu負(fù)載的狀態(tài) 2、如何查看內(nèi)存? 作者:南非蜘蛛? # prtconf | grep 'Memory' 可以查看內(nèi)存的多少. # /usr/platform/sun4u/sbin/prtdiag 3、

硬件系統(tǒng)

1、如何查看cup的狀態(tài)? 作者:南非蜘蛛?
# psrinfo -v
# mpstat 可以列出多cpu負(fù)載的狀態(tài)

2、如何查看內(nèi)存? 作者:南非蜘蛛?
# prtconf | grep 'Memory' 可以查看內(nèi)存的多少.
# /usr/platform/sun4u/sbin/prtdiag

3、如何動態(tài)添加swap分區(qū)? # $su - root ----- 成為超級用戶
# mkfile 100m /home/swapfile ----- 創(chuàng)建100m的Swap文件
# /usr/sbin/swap -a /path/filename ----- 激活Swap文件
# /usr/sbin/swap -l ----- 驗(yàn)證swap文件
# /usr/sbin/swap -d /path/filename ----- 取消swap文件
# rm -rf /home/swapfile ----- 刪除swap文件

4、如何查看當(dāng)前網(wǎng)卡是以何種速率起來的? 作者:南非蜘蛛
# dmesg |grep Link

5、如何調(diào)整x-window的分辨率和刷新頻率?
字符界面登陸,運(yùn)行:#/kdmconfig

6、如何使用光、軟驅(qū)?
一般情況下用:
# /etc/init.d/volmgt start
# volcheck
以上方法不行,用:
# /etc/init.d/volmgt stop
# mount -F hsfs -o ro /dev/dsk/c0t6d0s0 /cdrom --掛接光驅(qū)
# mount -F pcfs /dev/diskette0 /floppy --掛接軟驅(qū)
solaris定義系統(tǒng)磁盤文件系統(tǒng)說明:
ufs ? UNIX文件系統(tǒng)。是Solaris缺省的文件系統(tǒng)
hsfs ? 高密度CD-ROM文件系統(tǒng),是只讀文件系統(tǒng)。
pcfs ? PC文件系統(tǒng),支持DOS格式化的軟盤

7、SCSI設(shè)備的命名規(guī)則是什么?
帶有總線的硬盤的使用,下面列出了總線的硬盤命名習(xí)慣:
cWtXdYsZ
c Logical controller number
t Physical bus target number
d Drive number
s Slice (or partition) number (0 to 7)
例如:
/dev/rdsk/c0t0d0s0 該原始接口對應(yīng)第一個的第一個SCSI目標(biāo)地址的第一個硬盤的第一片(根)
/dev/rdsk/c0t0d0s2 該原始接口對應(yīng)第一個的第一個SCSI目標(biāo)地址上的第一個硬盤的第三片(表示整上硬盤)

8、如何查看硬盤的使用情況? 作者:南非蜘蛛?
# df -k??? 可以看到已安裝的文件系統(tǒng)的空間大小及剩余空間大小。
# quota -v? 查看用戶的磁盤空間信息,如果你用quota限制了用戶空間大小的話。
# du -sk *??? 查看目錄的使用情況
# du -k | sort -n 可以迅速發(fā)現(xiàn)那個目錄是最大的。

9、如何查看硬盤物理信息?
# format 這個命令也可以查看硬盤的類型和分區(qū)的詳細(xì)情況
# iostat -E??看硬盤的大小和型號
# prtvtoc /dev/rdsk/c0t0d0s0 顯示某個磁盤的分區(qū)狀況

10、查看系統(tǒng)內(nèi)核命令。 作者:南非蜘蛛?
# isainfo 看內(nèi)核的bit,
# isainfo -kv 調(diào)整內(nèi)核
# modinfo 顯示可載入的模組
# prtconf 顯示系統(tǒng)硬件配置(周邊設(shè)備)
#sysdef 顯示可載入的模組,硬件配置與一些可以調(diào)整的核心參考值
#ulimit -a

11、打印當(dāng)前的OBP版本號 作者:gunguymadman007
# prtconf ?V
OBP 3.20.0 2000/10/24 10:47
# /usr/platform/sun4u/sbin/prtdiag ?v | grep OBP
OBP 3.20.0 2000/10/24 10:47 POST 6.1.0 2000/10/24 10:49
ok. .version
Release 3.20 Version 0 created 2000/10/24 10:47
OBP 3.20.0 2000/10/24 10:47
POST 6.1.0 2000/10/24 10:49
OBDIAG 4.5.1 2000/10/24 10:48

12、查看及啟動系統(tǒng)的32位或64位內(nèi)核模式 作者:gunguymadman007
64位模式
# isalist ?v
sparcv9+vis sparcv9 sparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld sparcv7 sparc
# isainfo ?v
64-bit sparcv9 applications
32-bit sparc applications
# isainfo ?b
64
啟動64位內(nèi)核模式
ok. boot kernel/sparcv9/unix

32位模式
# isalist ?v
sparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld sparcv7 sparc
# isainfo ?v
32-bit sparc applications
# isainfo ?b
32
啟動32位模式
ok. boot kernel/unix

13、測定當(dāng)前的顯示器刷新頻率
# /usr/sbin/fbconfig ?rev \?

14、如何配置網(wǎng)卡ip?
# ifconfig -a --查看網(wǎng)卡,例如是hme0
# ifconfig hme0 unplumb --停止網(wǎng)卡
# ifconfig hme0 plumb --起用網(wǎng)卡
# ifconfig hme0 inet 192.168.2.3 netmask 255.255.255.0 up --添加ip、子網(wǎng)掩碼
# vi /etc/defaultrouter 添加默認(rèn)路由的ip
# vi /etc/hostname.hme0 添加主機(jī)名
# vi /etc/nodename 添加主機(jī)名
# vi /etc/resolv.conf
domain china..com 你的域名
nameserver 202.106.0.20 你使用的nds ip
# vi /etc/nsswitch.conf 更改 hosts:file dns

15、 PROM狀態(tài)命令與參數(shù)
格式: OK> 指令
命令 說明
banner 顯示當(dāng)前機(jī)器配置狀況,CPU,內(nèi)存,hostid,EtherNet
probe-scsi 顯示內(nèi)部SCSI通道所掛接設(shè)備
probe-scsi-all 顯示所有SCSI通道及所掛接設(shè)備
probe-ide 顯示所有IDE通道及所掛接設(shè)備(針對U10,U5)
devalias 顯示設(shè)備別名,如 cdrom,disk,disk0,disk1等
printenv 無參數(shù),顯示環(huán)境變量或
參數(shù)為環(huán)境變量名 如: printenv auto-boot?
setenv 設(shè)置環(huán)境變量,如: setenv auto-boot? false
set-default 恢復(fù)環(huán)境變量預(yù)定值 如:set-default auto-boot?
set-defaults 恢復(fù)所有環(huán)境變量預(yù)定值
boot device option 啟動主機(jī)
設(shè)備別名: cdrom 或 disk
設(shè)備名: /pci@1f,4000/scsi@3,1/disk@6,0:f
option -r 設(shè)備配置
-s 單用戶
eject cdrom|floppy 彈出cdrom或floppy
reset 復(fù)位
test net
watch-net-all
show-devs

16、查找網(wǎng)卡名稱及接口個數(shù) 作者:阿丙
# grep network /etc/path_to_inst

17、如何一塊網(wǎng)卡幫定三個ip,并且子網(wǎng)掩碼不同?
舉例說明,網(wǎng)卡名hme0:
# vi /etc/hosts
127.0.0.1 localhost
192.168.2.1 dbs loghost
192.168.9.15 dd
192.168.9.65 aa
# vi /etc/netmasks
192.168.2.0 255.255.255.0
192.168.9.0 255.255.255.192
192.168.9.64 255.255.255.252

#vi /etc/hostname.hme0
dbs
#vi /etc/hostname.hme0:1
dd
#vi /etc/hostname.hme0:2
aa
# ipconfig hme0 inet 192.168.2..1 netmask 255.255.255.0 up
# ipconfig hme0:1inet 192.168.9.15 netmask 255.255.255.192 up
# ipconfig hme0 inet 192.168.9.65 netmask 255.255.255.252 up
# init 6
#ipconfig -a

18、如何在prom狀態(tài)下查看光纖硬盤 ? 作者:深圳菜鳥
stop +a進(jìn)入ok狀態(tài):
ok> select 光纖卡設(shè)備名(可用show-devs查看到)
ok> show-children

19、主機(jī)雙屏幕設(shè)置。 作者:iricyan
1.Confirm there are two Video Cards。
2.Confirm driver installed and patches installed if need。
3.vi /usr/dt/config/Xservers.
comment the last line.
and uncomment the nearest line like this.
4.reboot.

20、查看硬盤參數(shù)及其物理地址:
#format </dev/null

21、顯示磁盤的分區(qū)情況:
#prtvtoc /dev/rdsk/c0t0d0s2


系統(tǒng)應(yīng)用:

1、、查看系統(tǒng)運(yùn)行級別
# who -r 看運(yùn)行級別

2、進(jìn)程工具 作者:e4gle
pstop pid  停止進(jìn)程
prun pid  重新啟動進(jìn)程
ptime pid  使用微狀態(tài)計(jì)算進(jìn)程時間
pwait pid  等待指定的進(jìn)程終止
pcred pid 顯示可信度    *
pfiles pid 顯示已打開文件的fstat和fcntl信息   *
pflags pid 顯示每個lwp的/proc跟蹤標(biāo)志,等待和待有信號量以及其他狀態(tài)信息  *
pldd  pid 顯示鏈接到每個進(jìn)程的動態(tài)鏈接庫   *
pmap pid  顯示地址映射空間   *
psig pid 顯示信號操作    *
pstack pid 顯示每個lwp的十六進(jìn)制與符號堆跟蹤   *
ptree pid 顯示包含指定PID的進(jìn)程樹
pwdx  pid 顯示當(dāng)前工作目錄   *
后面加*的必須是超級用戶執(zhí)行。
這些工具在/usr/proc/bin/里面。

3、patch軟件包的安裝
每個補(bǔ)丁都有編號。例如補(bǔ)丁號為101945,版本是34的話,這個補(bǔ)丁的目錄名就是101945-34.
# patchadd 105160-01 安裝補(bǔ)丁
# patchrm 刪除補(bǔ)丁
# patchadd -p 檢查系統(tǒng)的補(bǔ)丁情況
# showrev -p 查看所有已經(jīng)安裝的patch

4、如何容許root用戶遠(yuǎn)程登錄?
# vi /etc/default/login
CONSOLE=/dev/console ---用#注釋掉這一行。

5、如何限定telnet登陸數(shù)?solaris pts的數(shù)量缺省為47, 修改/etc/system文件, 增加如下內(nèi)容:
set maxusers=數(shù)量
set pt_cnt=數(shù)量

6、顯示已經(jīng)使用和未使用的i-node數(shù)目 作者:gunguymadman007
# df ?F ufs ?o i

7、顯示cpu使用率最高的進(jìn)程 作者:gunguymadman007
# ps ?eo pid,pcpu,args | sort +1n
該命令輸出當(dāng)前系統(tǒng)進(jìn)程的pid, CPU占用率及命令描述,并以pcpu來排序

8、查看當(dāng)前的OpenWindows版本 作者:gunguymadman007
# showrev ?w
OpenWindows version:
X11 Version 6.4.1 5 November 2001

9、查看當(dāng)前CDE的版本 作者:gunguymadman007
# /usr/ccs/bin/what /usr/dt/bin/dtmail
/usr/dt/bin/dtmail:
CDE Version 1.4.6_06
CDEVersion1.4.6_06

10、文消掉本中的^M
# cat test.dat | tr -d '\015' > test.out
這樣可以將 test.dat 內(nèi) ^M(\015) 這個字元去掉, 產(chǎn)生 test.out

11、關(guān)機(jī)命令。
關(guān)閉系統(tǒng)的方式根據(jù)關(guān)閉的原因而不同.執(zhí)行關(guān)閉有的是為了轉(zhuǎn)至執(zhí)行等級S,有的是要停止操作系統(tǒng)并關(guān)閉設(shè)備的電源.
(1) /usr/sbin/shutdown ?gtime ?ilevel -y
(2) init 0
(3) halt
(4) STOP+A ; sync
(5) 關(guān)閉電源
緊急情況,按Stop_A , 如Stop_A不起作用,則將設(shè)備電源關(guān)閉再打開.這是
極端情況.這兩種方法不是干凈的關(guān)閉,是突然關(guān)閉的,僅在緊急情況使用.

12、Solaris下怎么發(fā)送即時消息?
用wirte命令到單個用戶的終端。
$ wirte username
輸入消息正文,結(jié)束按ctrl-d,消息就會出現(xiàn)在用戶終端。
用戶可以用mesg n[y]來決定是否啟動接受消息。

用wall,是發(fā)給所有系統(tǒng)用戶。
$ wall
hello ,i love you ...... 結(jié)束用ctrl-D.

rwall -n netgroup 給網(wǎng)絡(luò)上所有用戶。
$ rwall -n workgroup --------發(fā)給組workgroup下的每一個用戶
hi ! no smoking ...... 結(jié)束用ctrl -d

$ rwall sune450 ------或者主機(jī)名為sune450。用法如上。。。

13、系統(tǒng)是sunos5.8, 不知何種原因現(xiàn)在唯一的普通用戶起不了Terminal, vi等,但是超級用戶可以,如何補(bǔ)救? 作者:kesin
用/etc/skel/local.cshrc 替換掉登陸路徑下的 .cshrc, 重新登陸, 就OK了!
$cp /etc/skel/local.cshrc ./

14、關(guān)機(jī)時這個題是什么意思? 作者:sunmarmot
/usr/sbin/vold[724]: [ID 244572 daemon.error] 卸載 /vol 時發(fā)生問題;中斷系統(tǒng)調(diào)用
uxwdog[481]: [ID 248799 daemon.error] error communicating with server (Broken pipe)

你還沒卸下來/VOL就啟動,才出問題,運(yùn)行:
# umount -f /vol后再做。

15、find常用的例子:
命令格式: find dir -name filename command
例子:
# find . -name hello -print 尋找目前目錄及所有的子目錄內(nèi)叫hello的文檔。
# find . -ctime +7 -print 找出七天內(nèi)未被更動的文檔
# find . -size +2000m -print 找出大小超過2000 bytes的文檔
# find /tmp -user b1234567 -print 在/tmp下屬於b1234567的文檔
# find . -name '*.c' -exec rm {} 刪除所有的.c檔
# find . -name test\* -print 顯示當(dāng)前目錄及其子目錄文件名前4位為test的文件名

16、忘記solarsi的root口令怎么辦? 作者:南非蜘蛛
方法一:
1.別怕,跟我來.
2.把你的solaris光盤放進(jìn)cdrom
3.鍵入stop+a
4.當(dāng)出現(xiàn)'ok'字樣時,鍵入boot cdrom -s
5.cd /tmp
6.mkdir /tmp/xxx (xxx是什么鬼東西就無關(guān)緊要了)
7.mount /dev/dsk/c0t0d0s0 /tmp/xxx (在這里c0t0d0s0是你的root盤)
8.運(yùn)行csh
9.TERM=sun;export TERM或者
setenv TERM vt220
10.cp /tmp/root/xxx/shadow /tmp/root/xxx/shadow/shadow.backup
11.vi /tmp/root/xxx/shadow并且將password里root項(xiàng)刪除。
12.重啟動,你就可以以無密碼的root登陸了,這時更改你的密碼。
要是沒有shadow,就把/etc/passwd里root用戶名后面的X刪掉,就可以了
方法二:
找一臺有系統(tǒng)的solaris機(jī)器,把忘記密碼的系統(tǒng)放進(jìn)去mount上來,重復(fù)方法一10以后的步驟.

solaris for x86的機(jī)器:
用光盤啟動到要你安裝的時候退出去就成單用戶,剩下的操作如上。

17、常見文件的解壓 作者:南非蜘蛛???
一般而言,在solaris下,會有這么幾種格式的軟件:
1) .gz結(jié)尾的文件,我們用gunzip或者gzip -d來解壓,再用tar來解壓.
2) .tar結(jié)尾的文件,我們肯定知道用tar xvf的格式來解壓.
3) .zip結(jié)尾的文件,我們用unzip,注意,這個只有在高版本的solaris下,才有.而且該文件格式以solaris的patch比較多.
4) .Z結(jié)尾的文件,我們一般用uncompress來解壓(當(dāng)然,每個人的習(xí)慣不一樣.)
上面講的是解壓,一般解壓后,會生成這么幾種方式:
1)生成.local的文件,這個時候,我們用: pkgadd -d xxx.local來安裝.
2) 生成一個目錄,而且該目錄下會有一些pkg信息,我們用: pkgadd -d . ;指在當(dāng)前目錄下,安裝,并且按照缺省的路徑來安裝.
3) 生成一個數(shù)字的目錄,一般是指solaris的patch,這個時候我們用patchadd來安裝.

18、如何在命令行界面替換一個文件中的字符段?
# vi file 在命令模式中輸入:
:1, $s/diag/peng/g 全文件查找diag并替換為peng

19、請問TERM=VT100和TERM=dtterm都在什么情況下設(shè)置? 作者:C.Arthur
一般情況下如果你在機(jī)器的顯示器上登陸或者通過XMANAGER等登陸,就默認(rèn)是dtterm,telnet 一般是ansi,當(dāng)你通過telnet修改文件的時候,需要設(shè)置成 TERM = VT100 ; export TERM

20、如何查看系統(tǒng)的版本?
$ uname -X
$ more /etc/release

21、命令行進(jìn)入CDE:
#/usr/dt/bin/dtlogin -daemon;exit
or
#/etc/rc2.d/S92dtlogin start;exit;

22、查看patch安裝過程中返回錯誤代碼的含義:
#more /usr/sbin/patchadd

23、如何從一臺SOL8的機(jī)器登錄到另外一臺SOL8的CDE桌面上去。
登陸CDE的時候點(diǎn)擊一下菜單:選擇--登陸遠(yuǎn)程主機(jī)--

24、如何查看你的默認(rèn)語言環(huán)境? C.Arthur
# more /etc/default/init

25、如何更改/home的權(quán)限? 作者: xieliangcheng
停掉autofs服務(wù),或者將/etc/auto_master的home注釋掉:
#vi /etc/auto_master
------------內(nèi)容如下----------
# Master map for automounter
#
+auto_master
/net -hosts -nosuid,nobrowse
#/home auto_home -nobrowse
/xfn -xfn





第三方軟件應(yīng)用或技巧:

1、查看當(dāng)前的bind版本信息 作者:gunguymadman007
# nslookup ?class=chaos ?q=txt version.bind

2、在登錄時顯示系統(tǒng)指定的消息?
#vi /etc/motd ----刪除所有過時的消息,輸入新消息
注意:對于已經(jīng)登錄且正在使用系統(tǒng)的用戶不顯示該消息,超過一屏的消息無法顯示。每次修改該文件后,該文件的時間戳隨之更新。

3、去掉文本中^M
# dos2unix aaa.txt bbb.txt,會去掉aaa.txt中的^M,生成bbb.txt文件。

4、將系統(tǒng)中7天前的txt文件查找并打包。
# find / -mtime -7 >aaa.txt
# tar cvf bbb.tar -I aaa.txt
---查找出文件記錄在aaa.txt文件中,在作成bbb.tar文件包。

5、查找并刪除比某一天更老的文件:
#find . ! -mtime -<days> | /usr/bin/xarys rn -rf

6、solaris9普通用戶下無確輸入中文的解決方法
在用戶目錄在#vi .profile 修改如下:
stty cs8 -istrip

7、請問如何防止telnet登陸發(fā)呆時間過長被踢呢?
這里,vi /etc/default/login
# TIMEOUT sets the number of seconds (between 0 and 900) to wait before
# abandoning a login session.
#
#TIMEOUT=300
修改之后不是立即生效,在這之后所又的login session都符合這個要求,但是在修改之前已經(jīng)建立的連接不受影響。

8、如何安裝gcc。
去sunfreeware.com上下載相應(yīng)平臺的pkg包的gcc版本。
#pkgadd -d gcc*
設(shè)置環(huán)境變量:
bash 和sh 的shell:
vi $home/.profiel
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc:/usr/local/bin:/usr/ccs/bin;export PATH
CC=gcc;export CC
csh的shell:
vi $home/.cshrc
set path=( /bin /usr/bin /usr/ucb /etc /usr/local/bin /usr/local/sbin .)
setenv CC gcc

9、列出當(dāng)前目錄下的目錄。 作者:brucewoo
ls -al | grep '^d'

10、用命令行來打開一個新的terminal。 作者:beginner-bj
/usr/dt/bin/dtterm



X86或者Vmware:

1、在Solaris10 x86上掛接window98分區(qū)的方法。 作者:k338
#mount -F pcfs /dev/dsk/c0d1p0:e /mnt
總結(jié)一下:
偶的硬盤是接在IDE1的sla ver盤上,用上述命令可將E:盤掛在/mnt
目錄下。如果你的電腦只有一個硬盤,并且是接在主板的IDE1槽,設(shè)為
Master盤(通常這種情況較多),現(xiàn)在想掛WIN98下的D:盤,可輸入
#mount -F pcfs /dev/dsk/c0d0p0:d /mnt
注意,/mnt可以改為任意的其它空目錄,如/data(我在文件管理器中自己
新建的一個目錄),可改為
#mount -F pcfs /dev/dsk/c0d0p0:d /data
按回車后如沒有任何出錯提示,則表示掛接成功,你就可以進(jìn)入掛接的文件夾(此處為/data)找到你所掛接的win98的D:分區(qū)上的文件了。
方法經(jīng)過偶N次實(shí)驗(yàn),是確實(shí)可行的。為后來者不再偶走過的彎路,偶特在此總結(jié)一下,哪位初學(xué)者不會在Solaris10 x86(Solaris9也應(yīng)該行)
掛win98分區(qū)的話,可參考本方法。
 

  系統(tǒng)管理員是工具的使用者。通過實(shí)踐經(jīng)驗(yàn),我們掌握了更多工具,并且增強(qiáng)了診斷問題以及實(shí)施解決方案的能力。本次專欄中包含的命令是通過經(jīng)驗(yàn)、朋友、熟人以及出席 9 月舉行的 SunNetwork 2002 大會收集到的。Solaris 內(nèi)核的開發(fā)人員 Brian Cantrill 和 Mike Shapiro 所講的"The /procodile Hunter"讓人很有啟發(fā)并令人感到驚恐,因?yàn)?Cantrill 編寫代碼來說明一個觀點(diǎn)的速度比 Shapiro 能夠講解該觀點(diǎn)的速度還要快!

有用的 Solaris 命令

truss -c (Solaris >= 8):這是個令人震驚的 truss 選項(xiàng),它提供了被追蹤命令的全面概要信息:


$ truss -c grep asdf work.doc
syscall               seconds   calls  errors
_exit                   .00       1
read                    .01      24
open                   .00       8      4
close                   .00       5
brk                     .00      15
stat                     .00       1
fstat                    .00       4
execve                  .00       1
mmap                   .00      10
munmap                 .01       3
memcntl                 .00       2
llseek                   .00       1
open64                  .00       1
                         ----     ---    ---
sys totals:               .02      76      4
usr time:                .00
elapsed:                 .05

它還能顯示正在運(yùn)行的進(jìn)程的概要數(shù)據(jù)。在本例中,數(shù)據(jù)表明了從啟動 truss 命令到用 control-c 來終止 truss 執(zhí)行的期間,進(jìn)程到底做了些什么。這對于判斷進(jìn)程為何被掛起是很理想的,因?yàn)槟鸁o須費(fèi)力瀏覽整個 truss 的輸出。

truss -d 和 truss -D (Solaris >= 8):這兩個選項(xiàng)表明與truss顯示的每個系統(tǒng)調(diào)用相關(guān)的時間信息。這對于找出定制代碼或商業(yè)代碼中的問題很有幫助。例如:


$ truss -d who
Base time stamp:  1035385727.3460  [ Wed Oct 23 11:08:47 EDT 2002 ]
0.0000 execve("/usr/bin/who", 0xFFBEFD5C, 0xFFBEFD64)  argc = 1
0.0032 stat("/usr/bin/who", 0xFFBEFA98)                = 0
0.0037 open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
0.0042 open("/usr/local/lib/libc.so.1", O_RDONLY)      Err#2 ENOENT
0.0047 open("/usr/lib/libc.so.1", O_RDONLY)            = 3
0.0051 fstat(3, 0xFFBEF42C)                            = 0
. . .
truss -D 對于顯示系統(tǒng)調(diào)用間的延遲時間更加有用:


Dilbert> truss -D who
0.0000 execve("/usr/bin/who", 0xFFBEFD5C, 0xFFBEFD64)  argc = 1
0.0028 stat("/usr/bin/who", 0xFFBEFA98)                = 0
0.0005 open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
0.0006 open("/usr/local/lib/libc.so.1", O_RDONLY)      Err#2 ENOENT
0.0005 open("/usr/lib/libc.so.1", O_RDONLY)            = 3
0.0004 fstat(3, 0xFFBEF42C)                            = 0

這個例子中,stat 這個系統(tǒng)調(diào)用要比其他系統(tǒng)調(diào)用占用更長的時間。

truss -T:這是個很棒的調(diào)式幫助選項(xiàng)。在執(zhí)行指定的系統(tǒng)調(diào)用時,它可以終止進(jìn)程("-U"也執(zhí)行同樣的操作,不過是在進(jìn)行用戶級的函數(shù)調(diào)用時)。此時,將會獲取用于進(jìn)一步分析的 core 文件,或者使用一些 /proc 工具來確定進(jìn)程各個方面的狀態(tài)。

truss -l(在 Solaris 9 中已改進(jìn)):顯示多線程進(jìn)程中每個調(diào)用的線程號。Solaris 9 中的 truss -l 經(jīng)過了改進(jìn),最后還可以監(jiān)視多線程的應(yīng)用程序的執(zhí)行。

Truss 的確是個功能強(qiáng)大的工具。例如,可在 core 文件中用于分析問題產(chǎn)生的原因。還可以通過"-u"選項(xiàng)來顯示用戶級的庫(既可以為系統(tǒng)庫,也可為程序員庫)調(diào)用的詳細(xì)信息。

pkg-ge:這是個用于自動獲取免費(fèi)軟件包的好工具(http://www.bolthole.com/solaris)。它通過 /etc/pkg-get.conf 來配置。一旦配置好并運(yùn)行后,就運(yùn)行 pkg-get -a 來獲取可用包的列表以及運(yùn)行 pkg-get -I 來獲取并安裝給定的包。

Plimit (Solaris >= 8):這個命令用于顯示并設(shè)置正在運(yùn)行的進(jìn)程中的每個進(jìn)程的限制。如果一個長時間運(yùn)行的進(jìn)程超過了某個限制(如打開的文件數(shù)目),使用該命令就十分方便。因?yàn)闊o須使用 limit 命令后重新運(yùn)行該進(jìn)程,plimit 就可以修改正在運(yùn)行的進(jìn)程。

coreadm (Solaris >= 8):在以前沒有 coreadm 命令時,core dumps 被置于進(jìn)程的工作目錄下。并且 core 文件將會互相覆蓋。而這個問題和其他更多問題都可以由 coreadm 來處理,它是一個管理 core 文件生成的工具。您可以通過該工具指定是否保存 core、core存儲的位置和應(yīng)保留的版本數(shù)目,等等。所有這些設(shè)置信息都是在重啟前通過 coreadm 修改 /etc/coreadm.conf 來保存的。

pgrep (Solaris >= 8):pgrep 在 /proc 中搜索符合給定規(guī)則的進(jìn)程,并返回進(jìn)程的 ID。其中一個很棒的選項(xiàng)是"-n",它返回的是最新的滿足條件的進(jìn)程號。

preap (Solaris >= 9):除去僵尸進(jìn)程。任何困于"z"狀態(tài)(由 ps 命令顯示)的進(jìn)程,該命令都可將之從系統(tǒng)中清除。

pargs (Solaris >= 9):顯示進(jìn)程的參數(shù)及環(huán)境變量。

nohup -p (Solaris >= 9):nohup 命令可以用于啟動一個進(jìn)程,因此即使用于啟動進(jìn)程的 shell 被關(guān)閉(即進(jìn)程獲得"SIGHUP"信號),該進(jìn)程仍然可以繼續(xù)運(yùn)行。這對于讓一個后臺任務(wù)不管碰到何種情況仍然可以繼續(xù)運(yùn)行是很有用的。但是如果您已經(jīng)啟動了一個進(jìn)程,但稍后希望使它免受 HUP 信號的影響,該怎么辦呢?在Solaris 9中, nohup -p 可以獲取進(jìn)程 ID 并使之忽略 SIGHUP 信號。

prstat (Solaris >= 8):prstat 也是 top 命令,但擁有更多功能。這兩個命令都可以提供一個屏幕的關(guān)于進(jìn)程的有用信息以及其他的相關(guān)信息,并且能頻繁地更新,總之是個很棒的顯示系統(tǒng)性能的窗口。但 prstat 要比 top 更加精確。它還提供了一些很好的選項(xiàng)。"-a"可以同時顯示進(jìn)程與用戶的信息(默認(rèn)由 CPU hog 排序)。"-c"使其執(zhí)行很像 vmstat(在前一個報告下面接著顯示新的報告)。"-C"顯示在處理器集中的進(jìn)程。"-j"顯示一個"工程"中的進(jìn)程。"-L"顯示每個線程和每個進(jìn)程的信息。"-m"和"-v"顯示每個進(jìn)程的很多詳細(xì)的性能信息(包括 pages、traps、lock wait 和 CPU wait)。所有輸出數(shù)據(jù)都可以按照在內(nèi)存中設(shè)置的大小、虛擬內(nèi)存大小、運(yùn)行時間等等條件來排列。prstat 在沒有 top 的系統(tǒng)中是個十分有用的工具,并且由于它的精確性,所以很可能取代 top(有些地方考慮到它是個被支持的程序而使用它)。

trapstat (Solaris >= 9):trapstat 以及 lockstat 和 kstat 是 Solaris 中最難以理解的命令。它們顯示一個運(yùn)行的操作系統(tǒng)內(nèi)部中最具體的細(xì)節(jié)信息。每個命令對于解決 Solaris 系統(tǒng)中發(fā)生的古怪問題都是必不可少的。最好是將它們的輸出隨錯誤報告一起提交,但進(jìn)一步的研究揭示,它們也能為一般應(yīng)用提供有用信息。

vmstat -p (Solaris >= 8):在這個選項(xiàng)可以使用之前,要確定是哪種類型的內(nèi)存命令導(dǎo)致系統(tǒng)頁面調(diào)度幾乎是不可能的(請查閱"se toolkit")。vmstat -p 可以解決此問題,因?yàn)樗坏@示您的系統(tǒng)是否處于內(nèi)存緊缺的情況(通過"sr"欄),而且還顯示是否是由以下內(nèi)容導(dǎo)致的:應(yīng)用程序的代碼,應(yīng)用程序的數(shù)據(jù)或 I/O 。"-p"能夠真正幫助找出 Solaris 中導(dǎo)致神秘的內(nèi)存問題的原因。

pmap -x (Solaris >= 8,Solaris >= 9中進(jìn)行了錯誤修復(fù)):如果已經(jīng)得知進(jìn)程中有內(nèi)存問題,并且需要獲得更多內(nèi)存使用的詳細(xì)信息,就可以使用 pmap -x。該命令將解釋指定 ID 的目標(biāo)進(jìn)程的整個內(nèi)存映射信息,如下:


# pmap -x 1779
1779:   -ksh
Address  Kbytes     RSS    Anon  Locked Mode   Mapped File
00010000     192     192       -       - r-x--  ksh
00040000       8       8       8       - rwx--  ksh
00042000      32      32       8       - rwx--    [ heap ]
FF180000     680     664       -       - r-x--  libc.so.1
FF23A000      24      24       -       - rwx--  libc.so.1
FF240000       8       8       -       - rwx--  libc.so.1
FF280000     568     472       -       - r-x--  libnsl.so.1
FF31E000      32      32       -       - rwx--  libnsl.so.1
FF326000      32      24       -       - rwx--  libnsl.so.1
FF340000      16      16       -       - r-x--  libc_psr.so.1
FF350000      16      16       -       - r-x--  libmp.so.2
FF364000       8       8       -       - rwx--  libmp.so.2
FF380000      40      40       -       - r-x--  libsocket.so.1
FF39A000       8       8       -       - rwx--  libsocket.so.1
FF3A0000       8       8       -       - r-x--  libdl.so.1
FF3B0000       8       8       8       - rwx--    [ anon ]
FF3C0000     152     152       -       - r-x--  ld.so.1
FF3F6000       8       8       8       - rwx--  ld.so.1
FFBFE000       8       8       8       - rw---    [ stack ]
-------- ------- ------- ------- -------
total Kb    1848    1728      40       -

這里,我們可以看到每一塊內(nèi)存,它們被用于做什么,占用了多大的(虛擬的和真實(shí)的)空間以及其模式信息。

df -h (Solaris >= 9):這個命令在 Linux 上已經(jīng)應(yīng)用十分普遍,剛剛轉(zhuǎn)移到了 Solaris 平臺。df -h 以一種方便閱讀的形式顯示文件系統(tǒng)的概要信息:


$ df -h
Filesystem             size   used  a vail capacity  Mounted on
/dev/dsk/c0t0d0s0      4.8G   1.7G   3.0G    37%    /
/proc                    0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
fd                       0K     0K     0K     0%    /dev/fd
swap                   848M    40K   848M     1%    /var/run
swap                   849M   1.0M   848M     1%    /tmp
/dev/dsk/c0t0d0s7       13G    78K    13G     1%    /export/home

結(jié)束語

    每個管理員都有一套日常使用的工具,以及另外一套在緊急情況下幫助解決問題的工具。本文介紹了各種各樣的的命令及選項(xiàng),它們不廣為人知但卻十分有用。您是否也保存了這樣一些偏愛的工具呢?如果有,請也發(fā)送給我,讓我可以擴(kuò)展自己的工具集。另外,可以發(fā)送一些您不喜歡或是感覺有危險的工具,它們或許也可以變成有用的呢!
 

相關(guān)文章

最新評論