红联Linux门户
Linux帮助

Solaris使用的几个小技巧

发布时间:2006-03-14 00:30:24来源:红联作者:007
引用:
内容摘要  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的无穷乐趣和强大的管理力量。
文章评论

共有 0 条评论