免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1915 | 回复: 0
打印 上一主题 下一主题

[转贴]solaris问题(技巧)集 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-27 12:38 |只看该作者 |倒序浏览
这些可能是大家所不熟知的一些问题(也是俺水平低-_-!)
         
         
          查看一个执行文件和库文件的动态链接情况
         
          #ldd
          oracle 
         
         
          libskgxp8.so => /app/oracle/product/8.1.6/lib/libskgxp8.so
          libjox8.so => /app/oracle/product/8.1.6/lib/libjox8.so
          libobk.so => /app/oracle/product/8.1.6/lib/libobk.so
          libnsl.so.1 => /usr/lib/libnsl.so.1
          libsocket.so.1 => /usr/lib/libsocket.so.1
          libdl.so.1 => /usr/lib/libdl.so.1
          libsched.so.1 => /usr/lib/libsched.so.1
          libc.so.1 => /usr/lib/libc.so.1
          libaio.so.1 => /usr/lib/libaio.so.1
          libposix4.so.1 => /usr/lib/libposix4.so.1
          libkstat.so.1 => /usr/lib/libkstat.so.1
          libm.so.1 => /usr/lib/libm.so.1
          libkvm.so.1 => /usr/lib/libkvm.so.1
          libelf.so.1 => /usr/lib/libelf.so.1
          libmp.so.2 => /usr/lib/libmp.so.2
          /usr/platform/SUNW,Ultra-Enterprise/lib/libc_psr.so.1
        
         
           
         
         
         
          用vmstat和sar -r 的freemem看系统的可用内存很少
         
              这个参数指示了freelist的大小,这是由page
          daemon标记为free的内存。freelist会根据需要收缩到lotsfree指定的大小,而且会保持这个大小。这个值并不能真正指出到底有多少空闲的内存,因为可能有大量的仍要被page
          daemon回收(reclaim)的内存,而page daemon并没有回收它们的必要。
         
           
          检查内存短缺的方法:
         
             vmstat
          中的sr列或sar -g 中的pagescan。它指出了page
          daemon是多么频繁的来找没有用的内存,并回收给需要的进程(以每秒的page数为单位)。当新启动一个进程时,可能会增加,但马上会恢复为0。
        
         
           
         
         
         
          如何把sar -d和iostat中的sd值转换为cxtxdx值
         
              /etc/path_to_inst文件有对应的类似
         
            /sbus@3,0/SUNW,fas@3,8800000/sd@5,5
         
           
          的名字,到/dev/dsk下用ls -l 找吧。
         
            另:用iostat的-n参数可以显示为cxtxdx。
        
         
           
         
         
         
          如果出现fsck也搞不定的坏块怎么办
         
             
          这种情况,一般是说这个block已经物理损坏了,只能把这个block映射到系统不会用到的地方,以免以后又使用这个block,提示出错信息。
         
             先从控制台或/var/adm/messages中找出block的号
         
            # format
          -> 选disk -> repair -> 输入 block 号 -> 确认(如果没有损坏,会有提示)
        
         
           
         
         
         
          如何增加一个进程可以打开的文件数
         
           
          [color="red"]ulimit -n 1024 for /bin/sh and /bin/ksh users
         
           
          [color="#ff0000"]limit descriptors 1024 for csh users
         
           
         
           
          /etc/system
         
           set
          rlim_fd_cur = 128
         
           set
          rlim_fd_max = 2048
         
           
         
         
         
          http://sunsolve.sun.com/private-cgi/retrieve.pl?doc=faqs%2F3325&zone_32=ulimit%20-n
        
         
           
         
         
         
          /etc/rc?.d下的几个主要文件的作用
         
          用于snmp
         
         
         
          /etc/rc3.d/S76snmpdx
         
         
          /etc/rc3.d/s76snmpdx
         
           
         
         
          用于 nfs
          server
         
         
          /etc/rc3.d/S15nfs.server
         
           
         
         
          用于从nfs
          server 上mount文件系统 
         
         
          /etc/rc2.d/S73nfs.client
         
           
         
         
          用于使用
          cachefs
         
         
          /etc/rc2.d/S73cachefs.daemon
         
         
          /etc/rc2.d/S93cacheos.finish
         
           
         
         
           用 ntp
          来执行时间同步
         
         
          /etc/rc2.d/S74xntpd
         
           
         
         
          用于 Ultra
          10000
         
         
          /etc/rc2.d/S99tsquantum
         
           
         
         
          使用
          automounter (generally NIS, NIS+ use this)
         
         
          /etc/rc2.d/S72autoinstall
         
           
         
         
          sendmail
         
         
         
          /etc/rc2.d/S88sendmail
         
           
         
         
          打印或发送打印任务
         
         
         
          /etc/rc2.d/S80spc
         
         
          /etc/rc2.d/S80lp
         
           
         
         
          自动启动CDE
          login画面
         
         
          /etc/rc2.d/S99dtlogin
         
           
         
         
          卷管理,自动mount
          cdrom
         
         
          /etc/rc2.d/S92volmgt
        
         
           
         
         
         
          关于syslog几个问题
           
         
          [color="#0000ff"]  Q:用"ps
          -ef"看到syslogd有" -n -z 14 "的参数,但用/etc/rc2.d/S74syslog来启动则没有这个参数?
         
         
          [color="#0000ff"]  A:当对syslogd一个HUP信号(kill
          -1)时,它会修改它的参数。所以当root的crontab在每个星期日的3:10am运行/usr/lib/newsyslog时,syslogd变成"syslogd
          -n -z 14"。其中:
         
              "-n"   
          表示no fork
         
              "-z
          14"  告诉syslogd /dev/log的文件描述符已经打开了
        
         
           
         
         
         
          显示文件系统的备份superblock
         
          [color="#0000ff"] 
          #newfs -N /dev/dsk/c0t0d0s0
         
            然后就可以用fsck
          -F ufs -o b=block_number /dev/dsk/c0t0d0s0  来完成fsck
        
         
           
         
         
         
          在Solaris2.6下显示磁盘的转速
         
          #iostat -nE
         
          c0t1d0 Soft
          Errors: 0 Hard Errors: 0 Transport Errors: 0
          Vendor: SEAGATE Product: ST34371W SUN4.2G Revision: 7462 Serial No:
          9805V87451
          [color="#ff0000"]RPM: 7200 Heads: 16 Size: 4.29GB
         
          Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
          Illegal Request: 0 Predictive Failure Analysis: 0
        
         
           
         
         
         
          如何用lofiadm管理本地回环设备
         
          设备:
         
             /dev/lofictl:   
          Master control device
         
             /dev/lofi/n:    
          Block device for file n
         
             /dev/rlofi/n:   
          Character device for file n
         
          具体操作:
         
             #cd /dev
         
             #mkdir
          lofi;cd lofi
         
             #ln -s
          ../../devices/pseudo/lofi@0:ctl
         
          此时在/dev/lofi/下有:
         
             1 ->
          ../../devices/pseudo/lofi@0:ctl指向主控设备,当运行
         
             #lofiadm
          -a /abc/abc.img /dev/lofi/1时会自动生成
         
             /dev/lofi/1
          -> ../../devices/pseudo/lofi@0:1
         
         
          这时,已有一设备/dev/lofi/1可供mount了。
         
             mount
          /dev/lofi/1 /mnt
         
          举例:
         
          例一、将mkisofs生成的iso映像作为lofi设备
         
          #mkisofs -o
          test.iso /.../mypath        (生成一个/mypath目录的光盘映像文件test.iso)
         
          #lofiadm -a
          /.../test.iso /dev/lofi/1   (将test.iso文件作为块设备)
         
          这时,用lofiadm可以看到
         
          Block
          Device     File
         
          /dev/lofi/1     
          /.../test.iso
         
          #mount -F
          HSFS -ro /dev/lofi/1 /mnt
         
          #cd /mnt;ls
          -l可以看到原test.iso的映像内容了。
         
          例二、将mkfile生成的一空白文件制作成设备
         
          #mkfile 20m
          test.img
         
          #lofiadm -a
          /.../test.img /dev/lofi/2
         
          #newfs
          /dev/lofi/2
         
          #mount -F
          ufs /dev/lofi/2 /mnt
         
          #df -k
         
          /dev/lofi/2    
          /mnt    ......
         
          可以当作一块磁盘来用。
         
          用完后可
         
          #umount /mnt
         
          #lofiadm -d
          /dev/lofi/n取消回环映射
        
         
           
         
         
         
          如何从网络安装Solaris
         
            
          (此例中安装server与client在同一网段内的,如不从同网段的server上安装,必须有一台同一网段的主机做boot server:#setup_install_server
          -b)
         
             a.
          server的/.rhosts里添加"+"
         
             b.
          /etc/hosts里添加server与client的IP与主机名
         
             c.
          /etc/ethers里添加server与client的MAC地址与主机名
         
             d.
          放入安装光盘Software 1/2(这里用的是Solaris 8)
         
          #cd /cdrom/cdrom0/s0/solaris/Tools
         
          #add_install_client
          [client的名字] [client的系统平台],如:
         
          #add_install_client
          temp sun4u---------->uname -i可以知道
         
             e.
          server上运行/etc/init.d/nfs.server start
         
             f.
          client上boot net
         
          开始安装。
         
          换光盘的时候需要unshare
          /cdrom/sol_8_sparc; eject,然后修改/etc/dfs/dfstab中share -F nfs -o ro,anon=0
          /cdrom/sol_8_sparc_2,重新启动nfs.server,client上输入servername:/cdrom/sol_8_sparc_2,
         
          继续即可。
         
         
          说明:add_install_client会修改/etc/dfs/dfstab,创建/tftpboot目录,修改/etc/bootparams文件。
        
         
           
         
         
         
          升级一台Ultra2的PROM过程
         
             #init 0
         
            
          开机箱,将jumper J2003(具体位置可以在answerbookII里的图上查到)跳到2-3上(write-enable),重新启动
         
             #init -s
         
             #bin/sh
          /usr/platform/sun4u/lib/prom/`/usr/bin/uname -i`
         
            
          开始升级。完成后还原J2003
        
         
           
         
         
         
          /usr/lib/acct下管理wtmp,utmp的工具
         
             cat /var/adm/wtmpx|fwtmp
         
             cat /var/adm/utmpx|fwtmp
        
         
           
         
         
         
          安装sniffit碰到的问题
         
            
          #./configure
         
             出错,提示ncurses库未安装(据称ncursecurse)
         
             下载后安装ncurse库:
         
            
          #./configure --enable-termcap
         
             (如果直接configure,make后运行test下的测试程序会提示open
          terminal error:vt100...
         
          --enable-termcap参数表示在安装terminfo
          database前先找/etc/termcap文件,把terminfo指向/etc/termcap翻译成的TERM环境变量。)
         
             #make
         
            
          进入test目录测试ncurses库是否正确安装,如正确则运行make install安装man,
          share等,也可以直接进入相应的组件目录运行#make install安装相应组件。
         
             然后可以安装sniffit了:
         
             #cp
          patch.1 ->sniffit源代码目录
         
            
          #patch
         
             compile
        
         
           
         
         
         
          如何做一块引导盘
         
             /usr/lib/fs/ufs/installboot
          bootblk /dev/rdsk/c0t0d0s0
        
         
           
         
         
         
          新增两块光口硬盘到A5000磁盘阵列
           
          安装了两块磁盘到阵列后,系统无法正常启动,找不到本地磁盘。据代理商说,E3000系列都有此问题,只用在OK状态下reset
          all一把,就好了。reset all后,boot disk。
         
          运行drvconfig,
          devlinks, disks,然后就可以看到新增的硬盘了。据SUN的手册说这些命令最好由devfsadm来替代。同时还提供devfsadmd,是daemon进程,实现自动检测新增设备的功能。
         
          drvconfig的作用是配置/devices,确认设备已安装上电,驱动程序已安装。
         
          devlinks的作用是在/dev下为各设备和伪设备增加新的entries。在/dev下创建符号链接到/device下的字符设备或块设备。
         
         
          disks/tapes/ports...之类的作用在/dev下创建entries。(不知道和devlinks有什么区别)
        
         
           
         
         
         
          如何用sar命令看全天的CPU记录
         
          crontab里增加如下语句:
         
         
          2,7,12,17,22,27,32,37,42,47,52,57 * * * * /usr/lib/sa/sa1
         
         
          每格5分钟采集一次数据,用sar -A命令可以查看结果了。
        
         
           
         
         
         
          Solaris下链接库目录配置
         
          /var/ld/ld.conf
          (32位)
         
          /var/ld/64
          (64位)
         
          crle可以设置默认库函数目录,LD_LIBRIARY_PATH不推荐使用,应淘汰


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2550/showart_49571.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP