QUOTE:內容摘要 Soalris作為UNIX的典型代表,素以穩定、性能好聞名於世,使用Solaris SPARC版或者x86版的人越來越多。Solaris以其自身的特點深得系統管理員和各類用戶喜愛,每個人使用UNIX都有自己的習慣,掌握一些使用技巧能收到事半功倍的效果。幾項技巧解析
/usr/sbin/static下有五個文件cp、 ln、 mv、 rcp、 tar這幾個命令是個靜態連接的命令文件,以下是file cp ln mv rcp tar的結果:
# file *
cp: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
ln: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
mv: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
rcp: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
tar: ELF 32-bit MSB executable SPARC Version 1, statically linked, stripped
Solaris制作iso文件
在Windows下如果想制作iso文件,必須安裝Winiso等商用軟件才能達到目錄,而在Solaris下,操作系統本身就提供了完成這樣功能的命令mkisofile,該命令能實現各種規格的iso文件的制作,同時Solaris還提供了cdrw命令來完成光盤的刻錄。
mkisofs命令格式如 mkisofs -o test.iso /test
-o輸出自定義的文件名, /test是所要制作成iso的源文件。
解決tar命令無法完成大於8G的文件包的問題
Write a tarfile with extended headers. (Used with c, r, or u options; ignored with t or x options.) When a tarfile is written with extended headers, the modifi- cation time is maintained with a granularity of microseconds rather than seconds. In addition, filenames no longer than PATH_MAX characters that could not be archived without E, and file sizes greater than 8GB, are supported. The E flag is required whenever the larger files and/or files with longer names, or whose UID/GID exceed 2097151, are to be archived, or if time granularity of microseconds is desired.
程序文件屬性紊亂的修復
系統管理員經常遇到程序文件屬性紊亂的問題,比如有root權限的用戶在根系統下不小心執行了chmod -R 777 *的操作等等都會導致這樣的問題了,該命令修改了所有文件的屬性,此時就會出現各種各樣的怪現象,使得系統無法正常使用,比如有的用戶在登陸的時候,居然會報沒有用戶shell,但是他的shell文件明明是存在的。
以下是解決辦法:
ok boot cdrom -s
# mount /dev/dsk/c1t1d0s0 /a 將根系統掛到/a上
# pkgchk -a -R /a -f命令來校正所有文件屬性.
# umount /a
# reboot
如果系統還沒有重起,可以直接執行pkgchk -a -R / -f 來糾正文件的屬性。Pkgchk命令能根據/var/sadm/pkg下安裝程序的信息來對所有文件屬性進行修復,如果/var文件系統是單獨劃分的話,上面的解決方法中需要將var文件系統mount到/a/var下面,這樣pkgchk命令才能程序包的信息。
文件訪問列表
由於各種原因,系統管理員想對單獨文件作詳細的文件訪問列表,在Solaris 8以前是沒有文件的訪問列表ACL的,Solaris 8引進了這個功能十分強大的ACL,比如說系統管理員可能會提出這樣的要求,以下是ACL使用的一個例子:
假設需要共享文件test,,有oracle、ora用戶,oracle用戶屬於dba組,ora用戶屬於oragrp組,文件屬於oracle用戶,需要將test文件共享給oragrp組,而其他組沒有權限修改這個文件。
a. getfacl test(能得到該文件的acl)
$ getfacl test
# file: test
# owner: oracle
# group: dba
user::rw-
group::r-- #effective:r-- (請注意該行)
mask:r--
other:r--
b. setfacl -m group:oragrp:7 test
(該命令是將oragrp組的用戶設成對test文件擁有讀寫執行權限)
c. setfacl -m m:7 test
(如果沒有將mask進行設置的話,別的設置都是無用的,mask控制了所有的權限)
此時已經完成了將test文件共享給oragrp組的操作,用getfacl test可以查看test文件的acl表:$ getfacl test
# file: test
# owner: oracle
# group: dba
user::rw-
group::r-- #effective:r--
group:oragrp:rwx #effective:rwx
mask:rwx
other:r--
可以用ls -l命令來檢查某個文件是否具有acl. ls -l /export/home/oracle/test顯示如下:
-rw-r--r--+ 1 root other 42 Jul 31 15:49 test
屬性的最後有一個+號表示該文件具有acl表。
在線增加文件系統的logging選項
在文件系統增加logging選項後,對系統的掉電和crash的時候,就不需要花很長的時間去做fsck了,但經常是服務器已經正式上線了才發現logging的選項還沒有加入,但此時又不能重新reboot系統了,為了能在線增加文件系統的logging選項,Solaris的mount命令提供remount功能,比如以下的命令就可以對根系統進行在線的增加logging功能:
mount -o remount,logging /dev/dsk/c0t0d0s0 /
客戶終端數不夠用的解決
在遠程用戶telnet到系統的時候發現無法登錄系統,系統給出一個警告就是 pts/33 no such file or directory,這是因為系統終端數不夠用了,缺省情況下,系統允許32個用戶同時登錄,而超出來的用戶則無法登陸了, 通過修改以下的參數能修正這個問題,方法如下:
請在/etc/system裡面增加以下的三行:
set maxuprc=50
set pt_cnt=999
set npty=999
加入以上參數以後,必須reboot系統才能使其生效!
去掉^M
用戶在ftp一個文本文件到系統後,vi 該文件的時候經常出現,文件的每行的末尾都會出現一個特殊字符^M,這是因為系統無法將微軟的某些轉義符無法翻譯造成的,以下提供幾個方法能很方便得去掉^M。
tr -d '^M'
outputfile tr命令能將inputfile文件裡面的^M去掉,outputfile為輸出的文件名,需要注意的是,inputfile,outputfile不能使同一文件,否則會將inputfile的文件清空,另外像dos2unix也能將其去掉!
以上的幾個技巧僅供參考,只要平時注意積累,會有越來越多的tips,也能充分體會到UNIX的無窮樂趣和強大的管理力量。