tianyayang 发表于 2005-11-18 13:51

常用查看系统状态和信息的命令(整理)

虽然不全,但一定是常用的,小弟自己整理的,望大家能够继续补充
1.showrev
查看系统Hostid: 24cc7225
          Release: 5.9
          Kernel architecture: i86pc
          Application architecture: i386
          Hardware provider: COMPAQ
          Domain: sinomos.com
          Kernel version: SunOS 5.9 Generic 112234-10 Nov 2003
showrev -p可以查看系统的安装的补丁
2、vmstat监视cpu
   iostat监视磁盘
   iostat -E现在磁盘信息,包括大小和错误数量,厂家等等
3、prtconf显示系统信息
4、prtdiag显示系统cpu,内存,以及OBP
5、netstat -r路由信息
   netstat -i接口信息
6、查看网卡状态
   ndd -get /dev/eri link_status or link_speed
7. isainfo -b 32 or 64
   isainfo查看系统的平台类型sparc or i386
8. prodreg图形界面显示安装的软件
9、prtvtoc /dev/rdsk/c0t0d0s2
   /* Disk geometry and partitioning info *
10、dos2unix | -ascii <filename>;
   /* Converts DOS file formats to Unix */
11、mailx -H -u <username>;
    /* List out mail headers for specified user */
12、prtconf | grep "Memory size"
    /* Display Memory Size */
13、prstat -a类似top的命令
14、Snoop Your Network
snoop -d pcelx0
/* Watch all network packets on device pcelx0 */
snoop -o /tmp/mylog pcelx0
/* Saves packets from device pcelx0 to a file */
snoop -i /tmp/mylog host1 host2
/* View packets from logfile between host1 & host2 */
snoop -i /tmp/mylog -v -p101
/* Show all info on packet number 101 from a logfile */
snoop -i /tmp/mylog -o /tmp/newlog host1
/* Write a new logfile with all host1 packets */
snoop -s 120
/* Return the first 120 bytes in the packet header */
snoop -v arp
/* Capture arp broadcasts on your network */   
15、uname -a
    显示机器名以及机器的平台,机器的型号
16、df -h显示磁盘使用情况
17、查看cpu详细信息psrinfo -v
18、whoami
      who
       finger
      查看当前登陆用户(大家运行下,看看有什么区别)
19、fuser -cu /mountpoint,看当前有什么进程和此文件系统有关
   fuser -ck /mountpoint,杀掉所有和此文件系统有关的进程
20、查看磁盘的分区情况:format---0(表硬盘控制器号)--partition--print
21、du -sk dir1 显示目录 dir1 的总容量,以k bytes为计量
22、id 查看当前用户用户号和组号
23、dfshares 显示远程机共享资源
24、pkginfo -l 命令显示关于软件包的详细信息,包括软件包的大小

[ 本帖最后由 tianyayang 于 2005-11-20 01:03 编辑 ]

helen9704 发表于 2005-11-18 13:55

很有用,顶

tianyayang 发表于 2005-11-18 14:36

我会不断的更新,谢谢支持,大家都来跟下,看看有什么常用的漏掉的,谢谢

billlion 发表于 2005-11-18 14:39

楼主辛苦!

alfee 发表于 2005-11-18 14:55

这那里够用啊,如:

你用isainfo看完里系统启动的哪种kernel,你可能想进一步看看内存里启动了哪些kernel module:

# modinfo
Id Loadaddr   Size Info Rev Module Name
01000000b5760   -   0unix ()
1106c6d819e36   -   0krtld ()
2107feb0 180330   -   0genunix ()
311b1528   a8   -   0platmod ()
411b15c0   bd80   -   0SUNW,UltraSPARC-II ()
611be000   44a0   1   1specfs (filesystem for specfs)
...

看了kernel module启动了,或许可能想进一步看看其数据结构:

# kstat |more
...
module: cpu_info                        instance: 2   
name:   cpu_info2                     class:    misc                               
      chip_id                         2
      clock_MHz                     450
      cpu_type                        sparcv9
      crtime                        91.083890136
      fpu_type                        sparcv9
      implementation                  UltraSPARC-II
      snaptime                        23372.605727035
      state                           on-line
      state_begin                     1083292792
...

看了数据结构,或许又关心下内存如何分配的,kernel占了多大:

# sar -k 1

SunOS u60 5.10 s10_54 sun4u    04/30/2004

17:11:35 sml_mem   allocfail    lg_mem    allocfailovsz_allocfail
17:11:36 14107136 10459228   0 102178816 96087616   0    18350080   0

看了常驻内存的kernel,有想看看内存里跑的程序有多少,程序的进程是那些,进程的线程有多少, 堆栈多大,进程开了那些文件:

# ps -ecL
   PID   LWPCLS PRI TTY      LTIME CMD
   0   1SYS96 ?         0:00 sched                                       
   1   1   TS59 ?         0:00 init
   2   1SYS98 ?         0:00 pageout
   3   1SYS60 ?         0:16 fsflush
   539   1   TS59 ?         0:00 sac
   323   1   TS59 ?         0:00 utmpd
   294   1   TS59 ?         0:00 nscd

...

# ptree
74    /usr/lib/sysevent/syseventd
82    /usr/lib/crypto/kcfd
85    /usr/lib/picl/picld
198   /usr/lib/inet/in.ndpd
...
            705   /usr/dt/bin/dtterm -session dt_jaWxb -C -ls
            731   -csh
                844   dic
                1469sh
                  1470csh
                  1493ptree
...

# pmap 824
824:    /bin/ksh -p /usr/dt/appconfig/SUNWns/netscape
00010000   200K r-x--/usr/bin/ksh
00052000       8K rwx--/usr/bin/ksh
00054000      48K rwx--    [ heap ]
FF210000   328K r-x--/usr/lib/locale/zh_CN.GB18030/zh_CN.GB18030.so.3
FF270000       8K rwx--/usr/lib/locale/zh_CN.GB18030/zh_CN.GB18030.so.3
FF280000   840K r-x--/lib/libc.so.1
FF362000      32K rwx--/lib/libc.so.1
FF36A000       8K rwx--/lib/libc.so.1
FF380000       8K r-x--/usr/lib/locale/zh_CN.GB18030/methods_zh_CN.GB18030.so.3
FF390000       8K rwx--/usr/lib/locale/zh_CN.GB18030/methods_zh_CN.GB18030.so.3
FF3AA000       8K rwxs-    [ anon ]
FF3B0000   168K r-x--/lib/ld.so.1
FF3EA000       8K rwx--/lib/ld.so.1
FF3EC000       8K rwx--/lib/ld.so.1
FF3F8000      16K r-x--/platform/sun4u/lib/libc_psr.so.1
FFBFC000      16K rw---    [ stack ]
total      1712K
...

# pfiles -F 824
824:    /bin/ksh -p /usr/dt/appconfig/SUNWns/netscape
Current rlimit: 256 file descriptors
   0: S_IFCHR mode:0666 dev:286,0 ino:6815752 uid:0 gid:3 rdev:13,2
      O_RDONLY|O_LARGEFILE
   1: S_IFCHR mode:0620 dev:286,0 ino:4 uid:126158 gid:7 rdev:0,0
      O_WRONLY|O_LARGEFILE
   2: S_IFCHR mode:0620 dev:286,0 ino:4 uid:126158 gid:7 rdev:0,0
      O_WRONLY|O_LARGEFILE
61: S_IFREG mode:0600 dev:293,2 ino:6185276 uid:126158 gid:10 size:0
      O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE FD_CLOEXEC
62: S_IFREG mode:0755 dev:32,32 ino:57970 uid:0 gid:3 size:6312
      O_RDONLY|O_LARGEFILE FD_CLOEXEC
...

看了程序/进程/线程/调用文件,你或许又要关心下当前系统对进程的分配调度规则,哪个先哪个后呢:

# dispadmin -l
CONFIGURED CLASSES
==================
SYS   (System Class)
TS      (Time Sharing)
FX      (Fixed Priority)
IA      (Interactive)
RT      (Real Time)
FSS   (Fair Share)

# priocntl -l
CONFIGURED CLASSES
==================
SYS (System Class)
TS (Time Sharing)
      Configured TS User Priority Range: -60 through 60                               
IA (Interactive)
      Configured IA User Priority Range: -60 through 60
...

看了调度规则,你可能想看看当前系统把那些CPU给那些进程了,还是所有进程共享呢:

# pooladm -e
# poolcfg -dc info
...
      pset oracle-pset
                int   pset.sys_id 1
                boolean pset.default false
...

看了CPU可能是共享的,这时看看个CPU的负载是否有不同呢:

# mpstat 1
CPU minf mjf xcalintr ithrcsw icsw migr smtxsrw sysclusr syswt idl
0    0   0200   402302139   53    1    0    0   150100   0   0   0
1    0   0    0   102100   83    0    3    0    0   105    2   0   098
2    0   0    0   118104   85    0    1    0    0    26    1   1   098

如发现CPU负载有问题,有想去了解下有无内存给CPU用呢:

可用说的vmstat, 还可查下CPU在从内存读数据时,对内存数据的命中率,100%?

# sar -b 1 100

SunOS u60 5.10 Generic_118822-08 sun4u    11/18/2005

14:20:45 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
14:20:46       0       0   100       0       0   100       0       0
14:20:47       0       0   100       0       0   100       0       0
14:20:48       0       0   100       0       0   100       0       0
...

看了内存情况,心里有点嘀咕,这系统关于内存是如何设的呢,何时把内存排不下的数据仍回到硬盘上的:

# netstat -k
...
system_pages:
physmem 63284 nalloc 11786054 nfree 11708436 nalloc_calls 5350 nfree_calls 4502
kernelbase 268435456 econtig 285212672 freemem 15428 availrmem 55955 lotsfree 977
cachefree 977 desfree 488 minfree 244 fastscan 8192 slowscan 100 nscan 0
desscan 25 pp_kernel 6089 pagesfree 15428 pageslocked 6579 pagestotal 62534
...

Solaris内存,为了速度,不是当CPU修改后立刻再写回硬盘,而到一定程度,即Water Mark - bufhwm:
缺省约占2%的物理内存,如你想修改,又得看/etc/system的参数:

# more /etc/system
...


或直接debug:

# adb -k /dev/ksyms /dev/mem                                                                               
...

看了内存关于读写硬盘,可能直接看I/O了:

包括你的iostat 和 netstat, 还有busstat, nfsstat:

# nfsstat -rc

Client rpc:
Connection oriented:
calls       badcalls    badxids   timeouts    newcreds    badverfs   
21203       0         0         0         0         0         

目录如使用SVM卷做的,还有:

# metastat
...

发现没用SVM卷,可能是ZFS:
# zpool df testpool
Pool                   size   usedavail capacity
-------------------- ------ ------ ------ --------
testpool               500M56.0K   500M   1%

上述所有东西,发现可能是系统管理员给你的虚拟的OS实例Zone,那可看看系统有几个Zone呢:

# zoneadm list -cv
ID NAME             STATUS         PATH                        
   0 global         running      /                           
   1 cu               running      /a1000/cu

累死了,再看看系统里有那些服务呢:

# svcs -a|more
STATE          STIME    FMRI
legacy_run   17:16:59 lrc:/etc/rcS_d/S29wrsmcfg
legacy_run   17:17:19 lrc:/etc/rc2_d/S10lu
legacy_run   17:17:19 lrc:/etc/rc2_d/S20sysetup
legacy_run   17:17:19 lrc:/etc/rc2_d/S40llc2
legacy_run   17:17:19 lrc:/etc/rc2_d/S42ncakmod
legacy_run   17:17:19 lrc:/etc/rc2_d/S47pppd
...
disabled       17:15:25 svc:/system/metainit:default
disabled       17:15:25 svc:/platform/sun4u/mpxio-upgrade:default
disabled       17:15:26 svc:/network/ipfilter:default
...
online         17:17:38 svc:/milestone/multi-user-server:default
online         17:17:38 svc:/system/zones:default
offline      17:15:27 svc:/application/print/ipp-listener:default
offline      17:17:14 svc:/application/print/rfc1179:default
maintenance    17:17:20 svc:/network/ssh:default
...

看看系统里有那些加密方法呢,位数多少:

# cryptoadm list -m

用户级别的提供者:
=====================

Provider: /usr/lib/security/$ISA/pkcs11_kernel.so
无可用插槽。

Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so
机制:
CKM_DES_CBC                  
CKM_DES_CBC_PAD            
CKM_DES_ECB                  
CKM_DES_KEY_GEN            
CKM_DES_MAC_GENERAL
...
内核软件提供者:
==========================
des: CKM_DES_ECB,CKM_DES_CBC,CKM_DES3_ECB,CKM_DES3_CBC
aes: CKM_AES_ECB,CKM_AES_CBC
arcfour: CKM_RC4
blowfish: CKM_BF_ECB,CKM_BF_CBC
sha1: CKM_SHA_1,CKM_SHA_1_HMAC,CKM_SHA_1_HMAC_GENERAL
md5: CKM_MD5,CKM_MD5_HMAC,CKM_MD5_HMAC_GENERAL
rsa: CKM_RSA_PKCS,CKM_RSA_X_509,CKM_MD5_RSA_PKCS,CKM_SHA1_RSA_PKCS
swrand: No mechanisms presented.

内核硬件提供者:
==========================

# mac -l
Algorithm       Keysize:Min   Max (bits)
------------------------------------------                                               
des_mac                  64    64
sha1_hmac                   8   512
md5_hmac                  8   512

# encrypt -l
算法       密钥大小: 最小   最大 (位)
------------------------------------------                                       
aes                     128   128
arcfour                     8   128
des                        64    64
3des                      192   192
。。。

又想看看某些目录里的文件,被人修改了吗,可和以前的存档对比下:

# bart compare etc-2005-05-20 etc2005-05-30

用户的程序被允许运行了吗,尽管其拥有权力,但可能没分配,检查下:

# elfsign verify -e /oracle/xx

...哪有个完啊,谁接下。。。。

tony_wu_ad 发表于 2005-11-18 15:25

哈哈,这种东西对我这样的新手来说很有用处阿,哈哈,多谢了!

ustcboy 发表于 2005-11-18 17:50

呵呵,我贴到我的论坛上去了

风之幻想 发表于 2005-11-18 18:07

呵呵.都是好东西.鼓励,欢迎大家继续补充!

tianyayang 发表于 2005-11-19 08:18

18、whoami
      who
       finger
      查看当前登陆用户(大家运行下,看看有什么区别)

tianyayang 发表于 2005-11-19 08:34

19、fuser -cu /mountpoint,看当前有什么进程和此文件系统有关
   fuser -ck /mountpoint,杀掉所有和此文件系统有关的进程
页: [1] 2 3
查看完整版本: 常用查看系统状态和信息的命令(整理)