- 论坛徽章:
- 1
|
这些可能是大家所不熟知的一些问题(也是俺水平低-_-!)
查看一个执行文件和库文件的动态链接情况
#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 |
|