solaris迅速查找手冊

硬件系統(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)文章
- Solaris是Sun公司開發(fā)和發(fā)布的一種現(xiàn)代操作系統(tǒng),是UNIX系統(tǒng)的一個重要分支,今天小編為大家?guī)淼氖荢olaris線程模型詳解,希望對大家會有幫助,有需要的朋友一起去看看吧2017-04-06
- 今天小編為大家?guī)淼氖荢olaris iostat詳解,希望對大家會有幫助 ,有需要的朋友一起去看看吧2017-04-06
- 今天小編為大家?guī)淼氖菧\談Solaris技術(shù),希望對大家會有幫助,有需要的朋友一起去看看吧2017-04-06
solaris11如何擴(kuò)展資源池?solaris11擴(kuò)展資源池的方法
最近一些朋友問小編solaris11如何擴(kuò)展資源池?今天小編將為大家分享solaris11擴(kuò)展資源池的方法!希望對大家會有幫助,有需要的朋友一起去看看吧2017-04-06Solaris10如何更改子網(wǎng)掩碼?Solaris10更改子網(wǎng)掩碼的方法
最近一些朋友在問Solaris10如何更改子網(wǎng)掩碼?下面小編將為大家分享Solaris10更改子網(wǎng)掩碼的方法!希望對大家會有幫助!有需要的朋友一起去看看吧2017-03-19- 今天小編將要為大家?guī)淼氖荢olaris中對tar.z進(jìn)行安裝卸載詳解!希望對大家會有幫助!有需要的朋友一起去看看吧2017-03-16
如何在solaris中設(shè)置分辨率?在solaris中設(shè)置分辨率的方法
最近有些朋友問小編如何在solaris中設(shè)置分辨率?下面小編將為大家?guī)淼氖窃趕olaris中設(shè)置分辨率的方法!希望對大家會有幫助,感興趣的朋友一起去看看吧2017-03-15如何查看solaris系統(tǒng)的版本和位數(shù)?
最近一些朋友問小編如何查看solaris系統(tǒng)的版本和位數(shù)?今天小編將為大家分享查看solaris系統(tǒng)的版本和位數(shù)的方法!希望對大家會有幫助,有需要的朋友一起去看看吧2017-03-14整理Solaris系統(tǒng)與Linux系統(tǒng)常用命令的區(qū)別
這篇文章主要介紹了Solaris系統(tǒng)與Linux系統(tǒng)常用命令的區(qū)別,Linux作為Unix的仿制品,其命令會與作為Unix發(fā)行版的Solaris有諸多相同點(diǎn),而本文則關(guān)注它們的相異之處,需要的朋友2016-02-05windows XP+Fedora 8+solaris 11三系統(tǒng)安裝攻略
介紹windows XP+Fedora 8+solaris 11三系統(tǒng)安裝攻略2014-06-16