转:Sun Solaris 常用维护命令

1、查看机型:SUn的小型机的机型都在面板上写着有,如NETRA T 1125, 
还有比如utra 5,utra 10等等。

2、查看cpu个数 (错误,不正确,因为sun中的top命令不能完全看到所有的cpu情况,与HP用法也不一样) 
#top 
CPU states: 99.3% idle, 0.1% user, 0.6% kernel, 0.0% iowait, 0.0% swap 
表示只有一个cpu

正确方法: 
用dmesg |grep cpu

便可以看到正确的 cpu个数了。

3、查看内存 
#dmesg |grep mem 
mem = 2097152K (0x80000000) 
avail mem = 2087739392

4、查看磁盘的个数 
#vxdisk list 
DEVICE TYPE DISK GROUP STATUS 
c0t0d0s2 sliced - - error 
c0t0d0s7 simple c0t0d0s7 rootdg online 
c1t0d0s2 sliced - - online 
c1t1d0s2 sliced smpdg2 smpdg online 
c1t2d0s2 sliced smpdbdg1 smpdbdg online 
c2t0d0s2 sliced - - online 
c2t1d0s2 sliced smpdg1 smpdg online 
c2t2d0s2 sliced smpdbdg2 smpdbdg online


5、如何查看文件系统 
#df -k 
Filesystem kbytes used avail capacity Mounted on 
/dev/dsk/c0t0d0s0 4032142 1050675 2941146 27% / 
/proc 0 0 0 0% /proc 
fd 0 0 0 0% /dev/fd 
/dev/dsk/c0t0d0s6 7304977 29 7231899 1% /home 
/dev/dsk/c0t0d0s5 4032142 402929 3588892 11% /opt 
swap 3418392 32 3418360 1% /tmp 
/vol/dev/dsk/c0t6d0/informix 
201730 201730 0 100% /cdrom/informix 
/dev/vx/dsk/smpdg/smpdg-stat 
1055 9 941 1% /smpwork 
/dev/vx/dsk/smpdg/lv_smp 
17336570 128079 17035126 1% /sms

6、查看卷组、逻辑卷的位置 
#cd /dev/vx/dsk/ 
比如smpdg等等都在该目录下了,然后再进入某个卷组目录就可以看到该卷组下 
面的逻辑卷了。

7、如何创建卷组、逻辑卷、文件系统 
A、创建smpdg逻辑卷组(假设现在是将c1t1d0 和c1t2d0两块物理磁盘来创建smcpdg逻辑卷组) 
vxdisksetup -i c1t1d0 (格式化物理磁盘) 
vxdisksetup -i c2t1d0 
vxdg init smpdg smpdg1=c2t1d0 (将物理磁盘加入到逻辑卷组smpdg) 
vxdg -g smpdg adddisk smpdg2=c1t1d0

然后再来创建逻辑卷、文件系统 
vxassist -g smpdg -U fsgen make lv_smp 17200m layout=nolog smpdg1 
vxassist -g smpdg mirror lv_smp layout=nostripe smpdg2 
newfs -C -f /dev/vx/rdsk/smpdg/lv_smp

假设现在的一台机器上挂接到/sms 
mkdir /sms 
chown smp:smp /sms 
vxvol -g smpdg startall 
mount /dev/vx/dsk/smpdg/lv_smp /sms 
umount /sms 
vxvol -g smpdg stopall 
vxdg deport smpdg

然后再在第二台机器上挂接到/sms 
mkdir /sms 
chown smp:smp /sms 
vxdg import smpdg 
vxvol -g smpdg startall 
newfs -C -f /dev/vx/rdsk/smpdg/lv_smp 
mount /dev/vx/dsk/smpdg/lv_smp /sms 
umount /sms


备注:以上是创建一个共享的文件系统 
往往由于smpdg要分配给某一个应用来使用,所以需要再来创建一个个逻辑机运行 
时挂接的文件系统: 
vxassist -g smpdg -U fsgen make smpdg-stat 2m layout=nolog smpdg1 
vxassist -g smpdg mirror smpdg-stat layout=nostripe smpdg2 
newfs /dev/vx/rdsk/smpdg/smpdg-stat


B、创建smpdbdg逻辑卷组 
创建卷组: 
vxdisksetup -i c1t2d0 
vxdisksetup -i c2t2d0 
vxdg init smpdbdg smpdbdg1=c1t2d0 
vxdg -g smpdbdg adddisk smpdbdg2=c2t2d0 
vxassist -g smpdbdg -U fsgen make smpdbdg-stat 2m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror smpdbdg-stat layout=nostripe smpdbdg2 
newfs /dev/vx/rdsk/smpdbdg/smpdbdg-stat

创建逻辑卷: 
vxassist -g smpdbdg -U gen make lv_rootdbs 128m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_rootdbs layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_logdbs 300m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_logdbs layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_phydbs 100m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_phydbs layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_tempdbs 1000m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_tempdbs layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_svcchunk1 2000m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_svcchunk1 layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_svcchunk2 2000m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_svcchunk2 layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_svcchunk3 2000m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_svcchunk3 layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_recchunk1 2000m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_recchunk1 layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_recchunk2 2000m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_recchunk2 layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_recchunk3 2000m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_recchunk3 layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_recchunk4 2000m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_recchunk4 layout=nostripe smpdbdg2 
vxassist -g smpdbdg -U gen make lv_recchunk5 1700m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_recchunk5 layout=nostripe smpdbdg2

C、附逻辑卷的属性 
vxedit -g smpdg -v set user=smp group=smp lv_smp 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_rootdbs 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_logdbs 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_phydbs 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_tempdbs 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_svcchunk1 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_svcchunk2 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_svcchunk3 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_recchunk1 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_recchunk2 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_recchunk3 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_recchunk4 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_recchunk5

备注:在SUN的机器中在给逻辑卷付属性的时候,等于用chown、chmod来作。


8、如何删除卷组 
其实也就是去激活和倒出的过程,然后再来对物理磁盘重新格式化就完了。 
vxvol -g smpdbdg stopall 
vxdg deport smpdbdg 
vxdisksetup -i c1t0d0 
vxdisksetup -i c2t1d0 
......

这样做了之后就不会再有/dev/vx/smpdbdg目录了。

9、如何建立共享卷组 
在第一台机器上先建立卷组,假设已经建设好卷组smpdg,现在要在第二台机器上建立共享卷组smpdg, 
则先在的一台机器上将smpdg去激活、并且倒出smpdg: 
smcp01>vxvol -g smpdg stopall 
smcp01>vxdg deport smpdg

再来在第二台机器上激活、导入smpdg: 
smcp02>vxdg import smpdg 
smcp02>vxvol -g smpdg startall

切换后对用以下三个命令进行查看是否切换成功: 
vxdg list //用于查看逻辑卷组的信息 
vxdisk list //用于查物理磁盘的信息 
vxprint -vt //用于查看所有卷的信息

10、如何查看磁盘的大小

方法一: 
#format 
然后选择盘的代号,回车进入下一级菜单,再选inquiry,就得到该盘的大小信 
息,比如: 
Vendor: FUJITSU 
Product: MAN3184M SUN18G 
Revision: 1502

注意:format是一个功能强大的磁盘诊断工具。

方法二: 
#cd /opt/SUNWexplo/bin/ 
运行explorer得到磁盘的信息包,是一个目录,进入该目录,就发现有一个 
disks目录,进入该目录发现有一个diskinfo文件,用如下命令看各个磁盘 
的大小:

0: rmt/0ln HP C1537A L706 62######## 
1: c0t0d0 FUJITSU MAJ3182M SUN18G 0804 0041P90050## 
2: c1t0d0 SEAGATE ST318203LSUN18G 034A 0025H54125## 
3: c1t1d0 SEAGATE ST318203LSUN18G 034A 0026H70087## 
4: c1t2d0 FUJITSU MAJ3182M SUN18G 0804 0046P66422## 
5: c2t0d0 SEAGATE ST318203LSUN18G 034A 0026G30220## 
6: c2t1d0 SEAGATE ST318203LSUN18G 034A 0026H59041## 
7: c2t2d0 FUJITSU MAJ3182M SUN18G 0804 0051P91980## 
8: ses0 SYMBIOS D1000 2 O8# SAF- 
9: ses1 SYMBIOS D1000 2 O8# SAF-

11、查看informix的版本 
#su - informix 
informix>onstat - 
这样可以看到informix的版本。

12、收集信息的工具 
#cd /opt/SUNWexplo/bin/explorer 
#explorer 
运行之后得到一个文件夹和该文件夹的压缩包*.gz。我们可以进入该 
结果文件夹,在该文件夹中有各种需要查看的信息。

13、双机的脚本文件 
#cd /opt/SUNWcluster/ha/smpwork 
在ha下面有双机应用的文件夹,如smpwork,在该文件夹下面又有各种 
双机应用的配置文件。

14、双机的维护命令集

首先在节点smcp01机上启动cluster: 
# scadmin startcluster smcp01 smcp 
然后在节点smcp02机上将本节点启动: 
# scadmin startnode 
启动后观察cluster状态的命令是 : 
# hastat //该命令可以显示cluster、节点、 
逻辑机和Data service的状态,以及一些历史运行信息。

# get_node_status //该命令可以显示所在节点的节点号、公用网卡的状态等信息。


从图形化的本地终端(假设其IP地址为ip)中以smcp用户的身份登 
录到SMCP主机(注意应使用SMCP的逻辑机地址) 
% telnet smcpwork 
在SMCP主机上设置环境变量DISPLAY 
% setenv DISPLAY ip:0.0 
在本地终端中执行 
% xhost + 
手工启动OAM 
% oam& 
以OAM操作员登录

分别在两个节点smcp01机和smcp02机上执行: 
# scadmin stopnode 
该命令使当前所在节点停止在cluster中运行,而且在两个节点上要分别执行该命令。

例如将smcpwork切换到节点smcp02上运行可以输入: 
#scadmin switch smcp smcp02 smcpwork 
例如将querywork切换到节点smcp02上运行可以输入: 
#haswitch smcp02 querywork

hareg命令通过以下开关参数将Data service注册和激活 
-r 将指定的Data service注册到cluster中 
-u 将指定的Data service从cluster中取消注册 
-y 激活指定的Data service,使其状态为On 
-Y 激活cluster中所有的Data service,使其状态为On 
-n 去激活指定的Data service,使其状态为Off 
-N 去激活cluster中所有的Data service,使其状态为Off 
hareg不带任何参数时可以查看所有Data service的当前状态 
Data service只有在注册到cluster中之后,才会具有On或者Off的状态, 
处于On状态的Data service可以正常的对外提供服务, 
而处于Off状态的Data service是停止对外服务的。如果Data service被取消了注册, 
必须重新注册才能在cluster中运行起来。当然,使用hareg命令的前提是cluster 
已经启动并正常运行。


从图形化的本地终端(假设其IP地址为ip0)中以root用户的身份登录到SMCP主机 
(假设其IP地址为ip1): 
在本地终端中执行 
% xhost + 
% telnet ip1 
再在SMCP主机上设置环境变量DISPLAY 
# DISPLAY =ip1:0.0 
# export DISPLAY 
# vxva


15、激活/去激活/导出/导入卷组 
smcp01>vxvol -g smpdg stopall 
smcp01>vxdg deport smpdg


smcp02>vxdg import smpdg 
smcp02>vxvol -g smpdg startall


16、SUN Netra T 1125双机配置的详细注解

A、网络资源的配置 
SUN Netra T 1125 共有4 个网卡:hme0 ,hme1 ,hme2和hme3 。 
hme0和hme1 是SUN 服务器与公网通信的主备用网卡,只需要一个IP 地址; 
hme2和hme3 作为双机之间心跳检测用,也需要配置一个IP 地址。 
另外,TELLIN SMP 对外使用的是一个浮动的IP 地址,与数据IP 在同一网段, 
此地址由SUN 的双机软件SUN Cluster进行管理。

1)如何修改IP地址和主机名

IP地址涉及的文件有: 
/etc/hosts (change the IP address) 
/etc/netmasks (if subnetting) 
/etc/defaultrouter (to specify the new gateway for this subnet)

改变主机名涉及的文件有: 
/etc/hosts (change to the new hostname) 
/etc/nodename (change to the new hostname) 
/etc/hostname.<interface> (where <interface> is the name of the primary 
interface for this system, i.e hostname.hme0 or hostname.le0. 
Change to the new hostname.) 
/etc/net/ticlts/hosts (change both columns to the new hostname) 
/etc/net/ticots/hosts (change both coluums to the new hostname) 
/etc/net/ticotsord/hosts (change both columns to the new hostname) 
改完上述文件之后推荐重起一下机器。

2)如何配置hme0、hme1两块网卡的主备关系

只要给hme0配置地址就够了。 
然后会再后面的双机配置中执行下面的命令建立逻辑机的时候会创建出这种关系来。 
#scconf smcp -L smcpwork -n smcp01,smcp02 -g smcpdg -i hme0,hme0,smcpwork -m

3) 配置NAFO (Network Adapter Fail Over) 
/opt/SUNWpnm/bin/pnmset <Enter> 
以下显示相关信息 
In the following, you will be prompted to do 
configuration for network adapter failover 
do you want to continue ... [y/n]: y <Enter> 
How many NAFO backup groups on the host [1]:<Enter> 
Enter backup group number [0]:<Enter> 
Please enter all network adapters under nafo0 
hme0 hme1 <Enter> 
The following test will evaluate the correctness 
of the customer NAFO configuration... 
name duplication test passed

Check nafo0... < 20 seconds 
hme0 is active 
remote address = 129.9.168.101 
test hme1 wait... 
nafo0 test passed 本信息表明通过测试 
注意: 
NAFO配置时对网线的要求较高,有时要做多次才能成功。


B、配置双机 
双机配置的一般过程是,先启动双机系统,在一个节点上配置cluster和包, 
检查无误后,使配置生效,然后就可以进行相应操作。 
注意: 
使用双机前,需要检查 smcpdg,querydg 的状态。执行如下步骤: 
(1) 在两个节点分别执行: 
# vxdg list 
应该只看到 rootdg ,不能看到 smcpdg 和 querydg。 
(2) 如果上以步操作看到 smcpdg 或 querydg,需要检查IDS是否在运行(Online)。 
如果在运行,先终止IDS运行,然后使用 vxdg deport 放弃对 Disk Group 的控制。 
====================

双机配置的一般过程是,先启动双机系统,在一个节点上配置cluster和包,检查无误后,使配置生效,然后就可以进行相应操作。 
注意: 
使用双机前,需要检查 smcpdg, querydg 的状态。执行如下步骤: 
在两个节点分别执行: 
# vxdg list 
应该只看到 rootdg ,不能看到 smcpdg 和 querydg。 
如果上以步操作看到 smcpdg 或 querydg,需要检查IDS是否在运行(Online)。如果在运行,先终止IDS运行,然后使用 vxdg deport 放弃对 Disk Group 的控制。

对双机系统进行配置 
在1号机运行#scadmin startcluster smcp01 smcp。 
待1号机双机软件起来之后,在2号机运行#scadmin startnode,将其作为节点加入双机 
对双机系统上逻辑机的配置 
逻辑机与应用程序对应,是双机系统管理应用程序的方式,每个逻辑机在双机系统上只对外提供一个IP地址。 
================================================ 
(2)配置cluster 
仅仅在一台主机上运行 
#scconf iin -L scpwork -n smcp02,smcp01 -g scpdg -i hme0,hme0,scpwork -m 
注意: 
该命令格式为: 
scconf <cluster name> -L <logical hostname> -n <node1 name>, <node2 name> 
-g <disk group name> -i <node1公网网口1> <node2公网网口1> <logical hostname> 
-m 
其中<node1 name> <node2 name>的顺序决定了该逻辑机在node1 上是主用,在node2上是备用。


备注:这里的逻辑机的主机名对应的浮动IP地址必须要在/etc/hosts文件中配置。


在每台机器上都要建立管理文件系统 
# scconf iin -F scpwork scpdg 
注意: 
该命令格式为: 
scconf <cluster name> -F <logical hostname> <disk group name>

在 2 号机上运行配置逻辑主机querywork 
#scconf iin -L smpwork -n smcp01,smcp02 -g smpdg -i hme0,hme0,smpwork -m

建立管理文件系统 
# scconf iin -F querywork querydg

注册双机 
hereg -u querywork 
query.register

hereg -u smcpwork 
smcp.register


C、配置应用程序

/etc/opt/SUNWcluster/conf目录 
可以通过ccd.datatbase和smcp.cdb两个文件查看双机基本配置和cluster的信息, 
不要去手工改动这些文件,让系统去维护它们。 
其中ccd.database有专门的守护进程维持该文件在两节点上的一致。

/opt/SUNWcluster/ha目录 
该目录下包含了smcp和query两个子目录。smcp目录存放smcp部分的Data service 
相关的配置文件和执行脚本,其中smcp.config文件记录了smcpwork的基本配置, 
smcp.register用来注册smcpwork,其它的文件是启动、停止和监测smcpwork的运行脚本。 
query目录存放query部分的Data service相关的配置文件和执行脚本,其中query.config 
文件记录querywork的基本配置,query.register用来注册querywork,其它文件 
是必需的运行脚本。 在把这两个Data service加入cluster时,必须分别通过hareg 
命令来进行注册,这些步骤已在安装时通过执行smcp.register和query.register完成。

备注:再conf目录下的文件ccd.database如果两台机器不一致的话,就会导致双机不能 
正常的切换。

D、双机配置的检验

(1) 先在主机上运行#scadmin startcluster smcp01 smcp 
(2) 等待主机双机软件运行起来后在备机上运行 
#scadmin startnode 
(3) 在两台主机运行df -k 及ifconfig -a检验是否有错,运行hastat查看HA状态, 
可看到hme0捆绑了smcp,query 应用的浮动IP: 
hme0 .... 129.9.168.101 
hme0:1 .... 129.9.168.120 
hme0:2 .... 129.9.168.140 
(4) 用haswitch命令进行切换实验,将逻辑主机smcpwork 由物理主机smcp01上切换到物理主机smcp02上。 
# haswitch smcp02 smcpwork 
要查看是否切换成功,则有以下方法: 
在主机 smcp02上用df -k查看磁盘资源。如果显示信息有以下内容,则说明切换成功: 
/dev/vx/dsk/smcpdg/smcpdg-stat 
在主机 smcp02上用 ifconfig -a 查看 ip 地址,若逻辑主机smcpwork的IP地址129.9.169.120 
此时已绑定在hme0网卡(即公网的主网卡)上,则说明切换成功。 
(5) 将/opt/SUNWcluster/bin/xps_check覆盖该目录下的db_check 
用get_node_status检验双机的状态 
smcp02>get_node_status 
sc: included in running cluster 
node id: 1 
membership: 0 1 
interconnect0: selected 
interconnect1: up 
vm_type: vxvm 
vm: up 
db: up

17、SUN Netra T 1125头次安装的时候如何来设置Terminal Concentrator。

=====================================

在TELLIN SMP 的SUN Netra T1125 标准配置中,主机为不带显示卡和显示器的SUN 服务器, 
因此使用终端集线器将两台主机上控制台(Console)信号接出到监控台上显示。由于在 
Solaris没有启动前,无法对主机进行控制,必须先设置终端集线器。如果Terminal Concentrator 
(简称TC)已经设置好,则可以不用重设。 
下面给出终端集线器的配置步骤。终端集线器一经配置完成就无须每次开机后再次配置, 
以下的配置过程假设 TC 的IP 地址为 129.9.168.23,子网掩码为 255.255.255.0。

(1) 用一台Sun工作站,用RS232玆J45电缆连接主机的串口A和终端集线器的 端口1。 
在工作站/etc/remote文件中加上: 
a:dv=/dev/term/a:br 9600:el=^C^S^Q^U^D:ie=%$e=^D:el=^C^S^Q^U^D:ie=%$e=^D: 
(2) 在ROOT用户下键入: tip a 
(3) 正确连接终端集线器和公网 
(4) 将终端集线器上电 
(5) 按一下终端集线器的Test键,Test指示灯亮并进入测试模式。注意:应当在电源灯亮后立即按 
Test键,不能等到其进入正常运行态,相当于计算机中按“DEL”进入设置状态。 
完成测试后,正确的各指示灯状态如表2-2所示。 
表2-2 终端集线器的指示灯 
灯名 Power Unit Net Attn Load Active 
颜色 Green Green Green Amber Green Green 
状态 ON ON ON OFF OFF 慢闪


(6) 在SUN工作站上将出现monitor::提示符,使用addr命令配置TC的IP和子网屏蔽码 
monitor:: addr <Enter> 
输入IP: 129.9.168.23 
输入子网屏蔽码: 255.255.255.0 
(7) 退出tip应用程序 
在monitor::提示符下: 
monitor:: boot <Enter> 
monitor:: ~.

( 关掉终端集线器电源并重新开机,若用PC机 能 telnet 上去, 
即验证了上述配置的正确性。此时对终端集线器的各端口进行配置: 
telnet 129.9.168.23 <Enter> 
Trying 129.9.168.23... 
Connected to 129.9.168.23. 
Escape character is '^]'.<Enter> 
Enter Annex port name or number: cli <Enter> 
annex: su <Enter>(切换到超级用户状态) 
Password: 此处键入TC的IP地址 
annex admin <Enter> 
Annex administration MICRO-XL-UX R7.0.1, 8 ports 
admin : set port=1-8 type dial_in imask_7bits Y <Enter> 
You may need to reset the appropriate port, Annex subsystem or 
reboot the Annex for changes to take effect. 
admin : set port=2-7 mode slave <Enter> 
You may need to reset the appropriate port, Annex subsystem or 
reboot the Annex for changes to take effect. 
admin : quit <Enter> 
annex boot <Enter> 
bootfile: <Enter> 
warning: 
*** Annex (129.9.168.23) shutdown message from port v1 *** 
Annex (129.9.168.23) going down IMMEDIATELY 
Connection closed by foreign host.w 
安装完毕,撤消1口的串口线。 
以上操作过程中可键入“?”或“help"出现帮助,在当前工作站上, 
可用使用PC机的超级终端等程序对TC进行设置。

===================================


18、查看物理磁盘的信息 
用一下命令查看物理磁盘是分配给哪个逻辑卷组。

#vxdisk list 
DEVICE TYPE DISK GROUP STATUS 
c0t0d0s2 sliced - - error 
c0t0d0s7 simple c0t0d0s7 rootdg online 
c0t8d0s2 sliced - - error 
c1t1d0s2 sliced c1t1d0 smcpdg online 
c1t2d0s2 sliced - - online 
c1t3d0s2 sliced c1t3d0 smcpdg online 
c1t4d0s2 sliced - - online 
c1t6d0s2 sliced - - online 
c2t1d0s2 sliced c2t1d0 smcpdg online 
c2t2d0s2 sliced - - online 
c2t3d0s2 sliced c2t3d0 smcpdg online 
c2t4d0s2 sliced - - online 
c2t6d0s2 sliced - - online

19、SUN的小型机的内核参数的修改/etc/system 
set shmsys:shminfo_shmmax=268435456 
set semsys:seminfo_semmni=4096 
set semsys:seminfo_semmns=4096 
set semsys:seminfo_semmnu=4096 
set semsys:seminfo_semume=64 
set semsys:seminfo_semmsl=100 
set shmsys:shminfo_shmmin=100 
set shmsys:shminfo_shmmni=100 
set shmsys:shminfo_shmseg=100


20、SUN双机运行的日志 
cluster日志记在 var/adm/messaage 中,如果cluster运行中出现故障, 
我们可以查看该文件以帮助定位问题。另外,注意观察控制台屏幕上的消息。 
cluster运行时的错误和告警信息,包括定时监测的结果,通常会实时的显示到控制台上。

21、如何使用光驱

A、如何利用光驱启动或者安装 
先在主机上同时按住stop和A键,即是:stop+A,这样进入OK命令环境;

再在OK状态下输入boot cdrom则可以进入光盘启动了。

B、如何读光驱的内容

将光盘塞入光驱中,会自动挂接的 
df -k看看光盘挂接在哪个目录下面了, 
然后进入该目录就可以访问到光盘中的内容了。

22、如何使用终端集线器对SUN双机进行console的功能访问 
修改/etc/default/login文件 
将CONSOLE=/dev/console一行修改为 
CONSOLE=/dev/console 
否则只能通过TC来登录主机,其它方式无法登录。


23、关闭主机的命令 
#shutdown --


24、如何利用远程磁带机来备份文件 
假设两台机器smcp01和smcp02,只有在第二台机器上才有磁带机, 
那么第一台机器要通过如下的方式来使用第二台机器的磁带机:

写: 
#tar cvf - /tmp/yqx | rsh smcp02 dd of=/dev/rmt/0m 
如果执行不成功则先设置: 
#obs=20b (20个block)

读: 
#rsh smcp02 dd if=/dev/rmt/0m | tar tvf - 
如果执行不成功,就先设置: 
#bs=20b


25、如何查看当前的网络子网、网络的掩码是多少 
1)查看子网 
#netstat -in 
查看hme0对应的: 
Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue 
hme0 1500 172.0.8.0 172.0.8.68 3430395 0 1134355 0 0 0 
可知子网就是172.0.8.0

2)查看掩码 
查看/etc/netmasks就可以了

3)查看地址 
#ifconfig -a 
或者查看/etc/hostname.hme0

注意:有些机器上的网卡的物理名字是le0。


26、如何从cluster中删除一个逻辑机呢? 
1)先将逻辑机上的应用进行去注册 
hareg -n scpwork; 
hareg -u scpwork; 
2)再将应用从逻辑机上删除 
scconf tellincluster(cluster名) -s -r scpserv(应用名) scpwork(逻辑机名) 
3)最后将逻辑机从cluster中删除 
方法一)用scinstall来选择菜单change/logic hosts/remove 来删除 
方法二)直接用命令scconf iin -L scpwork -r

备注:用scinstall命令可以查看到所有的关于sun双机配置的信息。


27、sun的逻辑卷组、逻辑卷的创建总结步骤 
SUN:Volumn manager 简称VM,在此环境下永久性修改smcpdg/querydg等磁盘卷组的用户属性及 
读写权限的时候,不能用chown和chmod来修改的,只能用vxedit来修改。


补充: 
初始化物理磁盘:vxdisksetup -i c1t2d0 
vxdisksetup -i c2t2d0 
创建卷组: vxdg init smpdbdg smpdbdg1=c1t2d0 
vxdg -g smpdbdg adddisk smpdbdg2=c2t2d0 
创建卷组挂接的文件系统: 
vxassist -g smpdbdg -U fsgen make smpdbdg-stat 2m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror smpdbdg-stat layout=nostripe smpdbdg2 
newfs /dev/vx/rdsk/smpdbdg/smpdbdg-stat 
创建逻辑卷: 
vxassist -g smpdbdg -U gen make lv_rootdbs 128m layout=nolog smpdbdg1 
vxassist -g smpdbdg mirror lv_rootdbs layout=nostripe smpdbdg2 
修改卷组权限: 
vxedit -g smpdg -v set user=smp group=smp lv_smp 
vxedit -g smpdbdg -v set user=informix group=informix mode=660 lv_rootdbs 
查看卷组激活情况:vxdg list 
导入卷组:vxdg import smcpdg 
激活卷组:vxvol -g smcpdg start all 
去激活卷组:vxvol -g smcpdg stop all

28、sun双机配置时关于自动启动双机的配置

为了保证SMCP双机在异常情况下可以在双机重新启动后自动拉起cluster,

SUN机型:把双机系统的自启动脚本S99startcluster拷贝 
到系统的/etc/rc3.d目录下。此脚本包含下述内容, 
其中通常需要根据现场情况进行修改的项目有: 
LOCALNODENAME、 REMOTENODENAME、 CLUSTERNAME 
if [ $LOCALNODENAME = "smcp01" ]; then 
REMOTENODENAME="smcp02" 
# LOCALID=0 
# REMOTEID=1 
else 
REMOTENODENAME="smcp01" 
# LOCALID=1 
# REMOTEID=0 
fi 
CLUSTERNAME=smcp-cluster


29、sun的总段上乱码的处理 
当在终端窗口上进行输入字符的时候,出现了乱码的时候,这个时候有 
两种解决办法: 
1)敲打del 
2) Ctrl + <---BkSp(向左的删除键)

30、查看一个逻辑卷组下面有哪些物理磁盘

root@smp2 # vxdg list smpdbdg 
Group: smpdbdg 
dgid: 1035450560.1072.smp2 
import-id: 0.1071 
flags: 
copies: nconfig=default nlog=default 
config: seqno=0.1027 permlen=3447 free=3445 templen=2 loglen=522 
config disk c1t0d0s2 copy 1 len=3447 state=clean online 
log disk c1t0d0s2 copy 1 len=522


30、sun双机的维护命令 
#scinstall 
命令可以进行一系列的sun双机的维护,如: 
Assuming a default cluster name of smp

Checking on installed package state 
....................

============ Main Menu =================

1) Install/Upgrade - Install or Upgrade Server 
Packages or Install Client Packages. 
2) Remove - Remove Server or Client Packages. 
3) Change - Modify cluster or data service configuration 
4) Verify - Verify installed package sets. 
5) List - List installed package sets.

6) Quit - Quit this program. 
7) Help - The help screen for this menu.

Please choose one of the menu items: [7]:

31、如何删除逻辑卷 
vxedit -g scpdbdg -fr rm 逻辑卷名

32、修改/etc/opt/SUNWcluster/conf/hanfs/vfstab.scpwork的文件系统

33、关于SUN小型机中创建用户注意 
有时候创建好用户了之后,我们又会将它删除,正确的操作应该是userdel 用户名来删除。 
但是有时候可能会被工程师直接从/etc/passwd中删除,这个时候如果再来用useradd添加同名用户的时候, 
系统会提示添加失败,这个时候必须要注意将/etc/shadow文件中的该用户的配置行也要删除,删除以后让 
/etc/shadow文件和/etc/passwd文件中的用户保持一致,这样就又可以用useradd来添加了。

34、如何实现一个用户属于多个用户组呢?


35、查看swap空间 
#swap -s 
eg: 
total: 76552k bytes allocated + 17184k reserved = 93736k used, 296608k available

另一篇文章中提到:

>show-devs 
>show-disks

终端控制 
ctrl+s :终止屏幕输出,如用cat命令输出时,要停一下 
ctrl+q :恢复ctrl+q的输出 
ctrl+c :中断当前的活动,返回命令提示符 
ctrl+d :表示文件的结束或退出,如退出终端窗口 
ctrl+u :擦除整个命令行 
ctrl+w :擦除命令行最后一个单词 
ctrl+h :擦除命令行最后一个字符 
bc :计算器

#ksh 切换到k shell


命令:

uname 
SunOS 
NAME

#man uname 
uname - print name of current system

SYNOPSIS 
uname [-aimnprsvX]

uname [-S system_name] 
date 
2004年05月19日 星期三 21时57分49秒 CST 

stings 
$stings /usr/bin/cat 
能够用来打印可执行文件或二进制文件中的可读字符。

cat more

#cat -n test.txt //显示行号

键值 目的 
空格 滚动到下一屏 
回车 一次滚动一行 
b 向后移动一屏 
f 向前移动一屏 
h 显示更多特性的帮助菜单 
q 退出,返回shell提示符 
/string 向前搜索字符串string 
n 查找下一处匹配

less 
#less test.txt //前移动一屏F,后B ,/string 查找字符

head 
#head -5 /export/home/wing/test.txt //显示开始的5行 
#head chap*|more //显示所有以chap开头的文件的头部 
用来显示一个或多个文件的前n行,默认省略-n参数将显示文件的前10行。

tail 
#tail -5 /export/home/wing/test.txt //显示最后5行 
#tail +5 /export/home/wing/test.txt //显示第5行开始到结束 
用来显示一个文件的最后n行,默认省略-n参数将显示文件的最后10行。

# tail -f /var/adm/messages //实时自动浏览syslog入口 
Oct 6 00:20:26 wing genunix: [ID 936769 kern.info] sd0 is /pci@0,0/pci-ide@7,1/ide@1/sd@0,0 
Oct 6 00:20:26 wing pcplusmp: [ID 637496 kern.info] pcplusmp: fdc (fdc) instance 0 vector 0x6 ioapi 
c 0x1 intin 0x6 is bound to cpu 0 
Oct 6 00:20:26 wing last message repeated 1 time 
Oct 6 00:20:26 wing isa: [ID 202937 kern.info] ISA-device: fdc0 
Oct 6 00:20:26 wing fdc: [ID 114370 kern.info] fd0 at fdc0 
Oct 6 00:20:26 wing genunix: [ID 936769 kern.info] fd0 is /isa/fdc@1,3f0/fd@0,0 
Oct 6 00:20:30 wing i8042: [ID 526150 kern.info] 8042 device: mouse@1, mouse8042 # 0 
Oct 6 00:20:30 wing genunix: [ID 936769 kern.info] mouse80420 is /isa/i8042@1,60/mouse@1 
Oct 6 00:21:37 wing login: [ID 722452 auth.error] user2netname: (nis+ lookup): Error in accessing N 
IS+ cold start file... is NIS+ installed? 
Oct 6 00:21:47 wing last message repeated 1 time 
Oct 6 00:52:07 wing login: [ID 722452 auth.error] user2netname: (nis+ lookup): Error in accessing N 
IS+ cold start file... is NIS+ installed?

wc 
#wc /export/home/wing/test.txt //显示文件的行、单词、字节数

#wc -l /export/home/wing/test.txt //显示文件的行数

选项 功能 
-l 统计行数 
-w 统计单词数 
-c 统计字节数 
-m 统计字符数

diff 
#diff -i test.txt test2.txt //忽略文章中的大小写 
#diff -c test.txt test2.txt //进行细致的比较生成一个差别表

touch 
#touch test1.txt test2.txt test3.txt //可以一次创建多个文件

mkdir 
#mkdir /export/home/wing 
#mkdir -p /export/home/wing //在路径中名中不存在的目录将被创建 
#rmdir dir //所要删除的目录必须是空的

rm 
rm -i test.txt test2.txt //交互式删除文件 
rm -r /tem/testd //删除目录和目录下的文件 
rm -ir /tem/testd //交互式的删除目录和目录下的文件

cp 
cp -i oldfilename newfilename //交互式拷贝 
cp /export/home/keven/ok.txt /export/home/wing/test.txt 
cp -ri /export/home/keven /export/home/wing 整个目录一起拷 
cp -rp 文件属性一起拷贝


crontab 
直接登陆窗口界面 
# crontab -l root //查看作业 
/etc/init.d/cron stop //停止进程 
在CONSOLE 中熟命令 crontab -e root 
crontab -e root //编辑加入要执行的代码 
0-59 * * * * date >> /export/home/keven/keven.txt //加入次行在末尾,每分钟执行一次

“格式如下: 
  (1)  (2)  (3)  (4)  (5)  (6) 
   0   0   *   *   3   date >> /export/home/keven/keven.txt 
      1. 分钟 (0-60) 
      2. 小时 (0-23) 
      3. 日 (1-31) 
      4. 月 (1-12) 
      5. 星期 (0-6) 
      6. 所要运行的程序 
如1-59分钟,1-24 小时

0 18-23 0 0 0-6 //每天的18-23点执行,0-6为周日到周六

/etc/init.d/cron start //启动进程 
# crontab -l root 
查看作业是否加入执行队列。 
不行退出到登陆界面,再次登陆进入,还加载就reboot


你是不是直接编辑用户的cron文件呀? 
如果是当然不运行,cron demon是在启动的时候才读一次配置文件. 
如果你是后加的JOB 要用crontab -e来编辑用户的cron. 
要不你 kill -HUP cron的进程ID. 
重新启动这个进程. 
每5分钟做一次必须写成5,15,20,25,30,35,40,45,50,55 * * * * 
=================================== 
“格式如下: 
  (1)  (2)  (3)  (4)  (5)  (6) 
   0   0   *   *   3   /usr/bin/updatedb 
      1. 分钟 (0-60) 
      2. 小时 (0-23) 
      3. 日 (1-31) 
      4. 月 (1-12) 
      5. 星期 (1-7) 
      6. 所要运行的程序 
但是我设成 1 0 0 0 0 /usr/bin/ps 
希望能自动在一分钟之后显示进程。但是没有成功。 
HELP ME

=============================================== 
15 1 * * * /opt/bin/ta.sh /opt/aadir > /dev/null

此处>/dev/null 必须用吗? 何意思? 
输出重定向到/dev/null, 否则会mail到你的邮箱 
dev/null 是一个特殊文件,所有输入到该文件的数据都会被丢弃。 
> /dev/null 的意思就是丢弃所有的输出内容,否则(就象楼上老兄说的)就会将输出内容发送到执行该命令的用户信箱中。 
这种写法只能把标准输出送到/dev/null中,如果有错误产生的话,还是会送到信箱里的。下面的写法才可以丢弃所有的输出内容: 
15 1 * * * /opt/bin/ta.sh /opt/aadir > /dev/null 2>&1

0 14 * * 0-6 //每天的下午14点执行

ls 
$ ls -n 
总数 12 
-rw-r--r-- 1 0 1 247 10月 2 07:53 list 
-rw-r--r-- 2 1002 100 62 10月 2 01:10 ok.txt 
drwxr-xr-x 2 0 1 512 10月 1 21:27 ss 
-rw-r--r-- 1 1002 100 171 10月 3 01:10 test.txt 
-rw-r--r-- 1 1002 100 120 10月 2 20:54 test1 
-rw-r--r-- 1 1002 100 0 9月 30 08:54 test2 
-rw-r--r-- 1 1002 100 0 9月 30 08:54 test3 
-rw-r--r-- 1 0 1 247 10月 2 07:58 tt.txt

# ls -ld using_samba //查看目录的权限 
drwxr-xr-x 2 root other 512 5月 8 22:23 using_samba


$ ls -a 
. .cshrc list ss test1 test3 
.. .login ok.txt test.txt test2 tt.txt

$ ls -l 
总数 12 
-rw-r--r-- 1 root other 247 10月 2 07:53 list 
-rw-r--r-- 2 keven user 62 10月 2 01:10 ok.txt 
drwxr-xr-x 2 root other 512 10月 1 21:27 ss 
-rw-r--r-- 1 keven user 171 10月 3 01:10 test.txt 
-rw-r--r-- 1 keven user 120 10月 2 20:54 test1 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test2 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test3 
-rw-r--r-- 1 root other 247 10月 2 07:58 tt.txt


$ ls -F //列出目录名 
TT_DB/ keven/ temp/ user2/ www/ 
cole/ lost+found/ user1/ wing/


符号 文件类型 
/ 文件夹 
* 可执行文件 
(none) 无格式文件或者ASCII文件 
@ 链接符

如: 
# ls -F 
accept* gsscred* metaset* i86/ //目录 
acctadm* halt* metastat* roleadd* 
add_drv* hostconfig* metasync* test.txt //ASCII 
cachefslog@ in.rlogind* mount* rtquery* 
cachefswssize@链接文件 in.routed* mountall* rwall*//可执行文件


$ ls -R //递归显示 
.: 
TT_DB keven temp user2 www 
cole lost+found user1 wing


./cole: 
inetservices.txt services services.txt

./keven: 
dir test.txt

./keven/dir:

./lost+found: 
./lost+found: 权限被否定

./temp: 
so.tar.gz

./user1:

./user2:

./wing: 
aa dead.letter mywife.tar ok passwd.txt test

./wing/test:

./www: 

$ ls . //显示当前目录 
dir test.txt 
$ ls .. //显示当前目录的父目录,支持路径表示符如~ 
TT_DB keven temp user2 www 
cole lost+found user1 wing 
$ ls -i test.txt test1.txt //节点检查 
64 test.txt 65 test1.txt

$ ls -il test.txt test1.txt 
64 -rw-r--r-- 1 keven sysadmin 27 10月 12 17:27 test.txt 
65 -rw-r--r-- 1 keven sysadmin 0 10月 12 17:25 test1.txt 
$ ls -ld //只显示目录 
drwxr-xr-x 3 keven sysadmin 512 10月 12 17:25 .

file 
$ file passwd.txt 
passwd.txt: ascii文本

lp 
$lp ok.txt myfile test.txt 
$lp -p evans1 test.txt //-p后为打印机evans1 
$lpstat // 打印队列状态 
ln 
#ln file1 newfile 
#ln file1 directory/newfilename 硬链接 
#ln ~/book/chap* /home/brad 
为每个chap文件都创建了链接,把这些链接指向/home/brad目录 
如果文件有多个指向它的硬盘链接,只是删除该文件并不能有效的释放磁盘空间,你将不得不删除掉所有指向它的硬链接。

#ln -s src target 
是软链接,存储的只是路径,用ls -l 可以看到,如果原文件已移走或删除,该名,则target就没有用了,删除和该名链接同样用rm


如果文件有多个指向它的硬盘链接,只是删除该文件并不能有效的释放磁盘空间,你将不得不删除掉所有指向它的硬链接。

# ln -s /export/home/ddd /var 既把/export/home/ddd目录链接到/var下面 
在var下面生成ddd 链接符号。当/var满了是时候用


mv 
#mv -i oldfilename newfilename 改名文件或文件夹 
#mv -i source_file(s) target_directory 移动文件到其它目录


swap 
# swap -s //列出一个系统虚拟交换空间的摘要。

total: 25728k bytes allocated + 6140k reserved = 31868k used,56496k 
available

# swap -l //列出系统物理交换空间的详细说明。 
swapfile dev swaplo blocks free 
/dev/dsk/c0t3d0s1 32,28 8 98792 90384

vmstat //查看虚拟内存状态 
# vmstat 
kthr memory page disk faults cpu 
r b w swap free re mf pi po fr de sr cd f0 s0 -- in sy cs us sy id 
0 0 0 635012 40880 10 36 21 0 1 0 231 3 0 0 0 116 287 184 1 1 99

# vmstat -s 
0 swap ins 
0 swap outs 
0 pages swapped in 
0 pages swapped out 
84899 total address trans. faults taken //地址解析错误 
5916 page ins 
6 page outs 
12283 pages paged in 
9 pages paged out 
22759 total reclaims 
22759 reclaims from free list 
0 micro (hat) faults 
84899 minor (as) faults //小错误 
5186 major faults //主要错误 
16092 copy-on-write faults //写复制操作错误 
22331 zero fill page faults 
539644 pages examined by the clock daemon 
18 revolutions of the clock hand 
570 pages freed by the clock daemon 
550 forks 
17 vforks 
514 execs 
431543 cpu context switches 
272891 device interrupts 
105553 traps 
671500 system calls 
97227 total name lookups (cache hits 96%) 
1297 user cpu 
1388 system cpu 
230813 idle cpu 
1542 wait cpu 
#

mpstat //系统负载cpu等信息 
# mpstat 5 //每隔5秒刷新一次 
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 
0 32 2 0 114 68 181 5 0 1 0 263 0 1 1 98 
0 2 0 0 101 55 160 1 0 0 0 58 0 0 0 100 
0 0 0 0 101 55 164 1 0 0 0 70 0 0 0 100 
0 0 0 0 99 52 158 1 0 0 0 48 0 0 0 100 
0 22 0 0 102 56 164 1 0 0 0 136 0 0 0 100


cal 
# cal 
2004年 5月 
日 一 二 三 四 五 六 

2 3 4 5 6 7 8 
9 10 11 12 13 14 15 
16 17 18 19 20 21 22 
23 24 25 26 27 28 29 
30 31

# cal 12 2002 //显示2002年10月的日历 
2002年 12月 
日 一 二 三 四 五 六 
1 2 3 4 5 6 7 
8 9 10 11 12 13 14 
15 16 17 18 19 20 21 
22 23 24 25 26 27 28 
29 30 31


# date;uname //组合命令,中间用;隔开 
2004年05月19日 星期三 22时05分23秒 CST 
SunOS


重定向输入/输出 
#command >filename //如果文件名存在,它将被覆盖,不存在将被创建 
#command >>filename //向一个存在的文件追加(添加到文件的末尾)内容,而不是覆盖它,如果不存在就创建。 
#command 2>filename //重定向标准错误,会创建文件或覆盖原有文件 
#commanf 2>>filename //重定向标准错误,向一个存在的文件追加(添加到文件的末尾)内容,而不是覆盖它,如果不存在就创建。

建ok文件 写入:cole how are you 
$ write cole<ok 
cole会收到这段话: 
在 wing (pts/2) [ 10月 3 五 22:41:08 ] 上面的 wing 中的消息 ... 
how are you my baby 
<结束>


find 
#find . -name test.txt //搜索当前目录 
#find dir -name test.txt 
#find / -name test.txt 
#find /export/home -name test.txt 
#find ~ -name ‘*tif’ //用户的主目录 
#find /export -name core -exec rm {} \ //搜索core文件并删除它们 
#find dir -type d //文件类型 
#find /export -type d -name test //文件夹名为test 
#find /export -size +400 //文件大于400块的512byte =1 blocks 
#find /export -name test.txt -exec rm {} \; //查找并删除 
#find /export -name test.txt -ok rm {} \; //交互模式删除 y 
#find /export -user keven //按用户查找 
#find / -user UID -exec rm{} \; //查找该用户的文件并删除 
#find / -name pfile -print>find.txt 2>null.txt& 
//找到则放入find.txt,否则就放到null.txt 程序在后台运行

# find /export -name tex.txt -exec rm {} \; //{} \中间有一个空格 
$ find ~ -name ’*es’ //es的前面为任意字符


搜索表达式 意义 定义 
name filename 文件名 搜索所有匹配的给定的文件,可以接受元字符(如? *) 
type filetype 文件类型 搜索匹配给定文件类型的文件(d为目录) 
mtime [+|-]n 修改的时间 搜索所有修改时间或者大于,或小于给定时间的文件 
atime[+|-]n 访问的时间 搜索所有访问时间或者大于,或者小于给定时间的文件 
user loginid -group groupid 用户ID和属组ID 搜索所有匹配登陆ID的所有者或属组ID的文件 
perm mode 权限 搜索所有匹配给定权限的文件(只允许八进制模式) 
size[+|-]n[c] 搜索所有大小或者大于,小于n的文件,n以512字节每块计算,如果后面有ac,则以字符(字节)计算 
-print 基将搜索结果输出到标准输出。该结果是一个全路径名的文件名 列表

-exec command{}\; exec选项必须通过\;来终止;这样使得find命令可以应用于指定命令中搜索准则中给出的每个文件 
-ok command{}\; -exec的交互格式.这个选项用于要求来自用户的输入命令.如 rm -i 
-ls 使用长列表格式打印当前路径.这个表达式最常用于链接一个输出,把它重定向到一个文件中,以便稍后进行检查

grep
#grep root /etc/passwd //在passwd中查找root 
#grep -i root /etc/passwd //忽略大小写 
#grep -v root /etc/passwd //显示除了含有root的行 
# grep -c root group //统计有多少行 
10

# grep -l root passwd group hosts //查找文件中包含root的文件 
passwd 
group

正则表达式 功能 例子 结果 
.(dot) 匹配任意字符可以多次使用,类似ls命令 grep chap.. file 显示所有包含chap,且之后还有两个字符的行 
*(asterisk) 在模式上匹配0个或多个字符 grep chap* file 显示所有包含chap,且之后可以是任意字符 
\(back slash) 告诉shell按照字面意思理解\之后的特殊字符 grep dollar\* file 显示所有包含dollar*的行./告诉shell按照字面意思理解*,而不是通配符 
^ (caret) 匹配所有以指定模式打头的所有行 grep ^name file 显示所有以Name开头的行 
$ 匹配所有以指定模式结尾的行 grep $800 file 显示所有以800结尾的行 
[] 匹配模式中的一个字符 grep [64.128] 显示所有包含64MB或128MB的行 
-i 忽略大小写 
-v 反包含.除了该字符串之外的行


egrep 
# egrep 'N(e|o)' /etc/passwd //查找以字母大N开头后面接e 或者o 
listen:x:37:4:Network Admin:/usr/net/nls: 
nobody:x:60001:60001:Nobody:/: 
noaccess:x:60002:60002:No Access User:/: 
nobody4:x:65534:65534:SunOS 4.x Nobody:/:


$ egrep ’(Network|uucp) Admin’ /etc/passwd 
uucp:x:5:5:uucp Admin:/usr/lib/uucp: 
nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico 
listen:x:37:4:Network Admin:/usr/net/nls:


sort 
#cat test.txt 
oggg 
aaa 
ddkk 
ddgfg 
kk 
11 
34 
22 
#sort test.txt 
11 
22 
34 
aaa 
ddgfg 
ddkk 
kk 
oggg 
# ls -ld t* >list 
# cat list 
-rw-r--r-- 1 keven user 32 10月 2 07:51 test.txt 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test1 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test2 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test3 
# sort -rn +4 list -o tt.txt //翻转排序 头4个字符 
# ls 
list ok.txt ss test.txt test1 test2 test3 tt.txt 
# cat tt.txt 
-rw-r--r-- 1 keven user 32 10月 2 07:51 test.txt 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test3 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test2 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test1 
#sort +5M +6n list -o up.txt

选项 描述 
-n 进行数字排序,n可以单独和短横线连接,或者可以跟着一个区域参数 
(+|-)n 以第n个分隔符的区域开始或结束。默认的分割符是空格 
-r 翻转排序的顺序。r可以单独与短横线连用,或者可以跟着一个区域参数 
-f 在排列中忽略大小写 
+nM 把开始的三个字符做为月份名称的简写来排序 
-d 使用字典排序,只用字母和空格排序,其它的符号忽略 
-o filename 把所有输出放到文件名中


who 
# who 
root console 10月 2 19:23 (:0) (本地登陆) 
wing pts/2 10月 2 19:22 (192.168.0.1)(远程登陆)

# who -q //登陆用户统计 
root wing 
# users=2

# who -r //运行级别 
. run-level 3 10月 2 19:20 3 0 S

$ who -Hu 
NAME LINE TIME IDLE PID COMMENTS 
keven pts/2 10月 12 10:57 . 389 (192.168.0.1) 
user pts/3 10月 12 10:16 0:52 368 (192.168.0.1) 
PID为用户登陆上来的进程,#kill -9 368 把此用户踢出

$ who 
root console 10月 3 19:21 (:0) 
keven pts/6 10月 3 22:11 (192.168.0.1) 
wing pts/2 10月 3 22:11 (192.168.0.1) 
cole pts/3 10月 3 22:11 (192.168.0.1)

w 
$w 
下午11点01分 运行 3:43, 4 users, 平均负载:0.00, 0.00, 0.02 
用户名 终端号 登入时间 闲置 JCPU PCPU 执行命令 
root console 下午 7点21分 3:40 10 1 /usr/dt/bin/dtscreen -mode blank 
keven pts/6 下午10点11分 -csh 
wing pts/2 下午10点11分 5 w 
cole pts/3 下午10点11分 50 -ksh 
$ w keven 
下午11点10分 运行 3:52, 4 users, 平均负载:0.00, 0.00, 0.02 
用户名 终端号 登入时间 闲置 JCPU PCPU 执行命令 
keven pts/6 下午10点11分 9 -csh


logins 
# logins 
root 0 other 1 Super-User 
daemon 1 other 1 
bin 2 bin 2 
sys 3 sys 3 
adm 4 adm 4 Admin 
uucp 5 uucp 5 uucp Admin 
nuucp 9 nuucp 9 uucp Admin 
smmsp 25 smmsp 25 SendMail Message Submission Program 
listen 37 adm 4 Network Admin 
lp 71 lp 8 Line Printer Admin 
wing 1001 adm 4 my wife 
keven 1002 user 100 
user1 1003 adm 4 
user2 1004 adm 4 
cole 1005 adm 4 
nobody 60001 nobody 60001 Nobody 
noaccess 60002 noaccess 60002 No Access User 
nobody4 65534 nogroup 65534 SunOS 4.x Nobody


last 
$ last //当前系统的使用历史使用模式 
keven pts/2 192.168.0.1 Mon Oct 6 00:55 仍在登录状态 
cole pts/6 192.168.0.1 Mon Oct 6 00:52 仍在登录状态 
root console :0 Mon Oct 6 00:44 仍在登录状态 
wing pts/3 192.168.0.1 Mon Oct 6 00:21 仍在登录状态 
keven pts/2 192.168.0.1 Mon Oct 6 00:21 - 00:55 (00:34) 
reboot system boot Mon Oct 6 00:20 
keven pts/2 192.168.0.1 Sun Oct 5 19:47 - 20:02 (00:14) 
reboot system boot Sun Oct 5 19:46 
wing pts/1 192.168.0.1 Sun Oct 5 07:47 - 07:48 (00:00) 
keven pts/1 192.168.0.1 Sun Oct 5 06:24 - 07:47 (01:23) 
root console :0 Sun Oct 5 06:22 - 07:48 (01:25) 
keven pts/1 192.168.0.1 Sun Oct 5 06:21 - 06:24 (00:02) 
reboot system boot Sun Oct 5 06:21 
cole pts/6 192.168.0.1 Sun Oct 5 01:58 - 03:09 (01:11) 
wing pts/5 192.168.0.1 Sun Oct 5 01:58 - 03:10 (01:11)

finger 
# finger 
Login Name TTY Idle When Where 
root Super-User console Thu 19:23 :0 
wing my wife pts/2 Thu 19:22 192.168.0.1 
$ finger -s keven //指定查看的用户 
Login Name TTY Idle When Where 
keven admin pts/6 11 Fri 22:11 192.168.0.1 
$ finger @www //查看一台主机的登陆用户状况www为主机名 
[www] 
Login Name TTY Idle When Where 
root Super-User console 1 Fri 19:21 :0 
keven admin pts/6 13 Fri 22:11 192.168.0.1 
#finger -s username@hostname 
#finger @webserver.com 
#finger [email protected] 
$ finger -l keven //长格式显示 
Login name: keven In real life: admin 
Directory: /export/home/keven Shell: /bin/ksh 
On since Oct 12 10:16:41 on pts/2 from 192.168.0.1 
24 seconds Idle Time 
No unread mail 
No Plan. 
# finger user1 
Login name: user1 In real life: 
Directory: /export/home/wing Shell: /bin/sh 
On since Oct 12 11:11:33 on pts/3 from 192.168.0.1 
4 minutes 8 seconds Idle Time 
No unread mail 
No Plan.

$ finger -m //只搜索登陆的用户名


# man -l uname //输出该命令的地址 
uname (1) -M /usr/share/man 
uname (2) -M /usr/share/man


NAME 
man - find and display reference manual pages

SYNOPSIS 
man [-] [-adFlrt] [-M path] [-T macro-package] [-s section] 
name...

man [-M path] -k keyword...

man [-M path] -f file...

id 
# id 
uid=0(root) gid=1(other) //为当前用户的ID,而不是原始登陆ID

who i am 
# who i am //真实的UID 
root console Oct 2 19:23 (:0) 
wing pts/2 Oct 2 19:41 (192.168.0.1)

df -k 
# df -k 
Filesystem kbytes used avail capacity Mounted on 
/dev/dsk/c0d0s0 63127 36137 20678 64% / 
/dev/dsk/c0d0s6 1201014 768820 372144 68% /usr 
/proc 0 0 0 0% /proc 
mnttab 0 0 0 0% /etc/mnttab 
fd 0 0 0 0% /dev/fd 
/dev/dsk/c0d0s3 55047 25063 24480 51% /var 
swap 608948 24 608924 1% /var/run 
swap 609216 292 608924 1% /tmp 
/dev/dsk/c0d0s5 24239 15 21801 1% /opt 
/dev/dsk/c0d0s7 2691830 112 2637882 1% /export/home 
/dev/dsk/c0d0s1 462639 306816 109560 74% /usr/openwin 
du -k 
#du -k /export //递归显示文件夹中的文件或文件夹 
# du -sk /etc    查看目录的使用情况 总树统计 
# du -k /etc 逐个查看 
# du -k /export | sort -n 可以迅速发现那个目录是最大的。


vi 
vi(文本输入模式) 
命令 功能 
a 在光标后追加文本 
A 在行末追加文本 
i 在光标前追加文本 
o 在光标下插入新的一行 
vi(末行模式) 
命令 功能 
:w 写缓冲区,保存更改继续在vi中工作 
:w new_filename 把缓冲区写如new_filename 
:wq 或 ZZ 写缓冲区,保存修改,然后退出vi 
:q! 不保存修改而退出 
:wq! 写缓冲区保存修改然后推出vi,如果你是文件的所有者将忽略只读属性 
e! 取消自上次保存以来所做的修改 
等价于:wq! wq 
u 取消最近的一次编辑

vi(命令模式) 
命令 功能 
j(或向下箭头) 向下移动一行 
k(或向上箭头) 向上移动一行 
h(或向左箭头) 向后移动一个字符 
l(或向右箭头) 向前移动一个字符 
空格 向右移动一个字符 
w 向前移动一个单词(包括标点) 
b 向后移动一个单词(包括标点) 
$ 移动到行末 
0(零)或 ^ 移动到行首 
回车 移动到下一行首

vi(命令模式和末行模式) 
命令 功能 
x (小写) 删除光标处字符 
dw 删除单词 
3dw 删除三个单词 
dd 删除光标所在的行 
3dd 删除三行 
yy 拉出一行拷贝,放到剪贴板中 
p(小写) 把拉出行放到当前之下 
P(大写) 把拉出行放到当前之上 
:set nu 显示行号 
:set nonu 隐藏行号 
:set showmode 显示当前操作模式(如用vedit将自动打开) 
:set noshowmode 关闭模式显示 
:set 显示所有vi变量 
:set all 显示所有可能的vi变量和它们的当前的值 
G 到达文件的最后一行 
:21 到达第21行 
/string 向前搜索字符串string 
?string 向后搜索字符串string 
n 查找匹配的下一个字符串


cpio

#cpio -idcmv < lnx_902_disk1.cpio 截压缩

tar 
# tar cvf backup.tar list ok.txt test.txt //备份生成backup.tar 
a list 1K 
a ok.txt 1K 
a test.txt 1K 
#tar rvf backup.tar tt.txt //追加tt.txt到backu.tar中去 
# tar cvf backup.tar tt.txt //注意会覆盖backup.tar原有的文件 
a tt.txt 1K 
# tar cvf /export/home/wing/mywife.tar ok2.txt ss // 备份到另一个目录 
# tar xvf backup.tar //全部还原出来

# tar xvf backup.tar tt.txt //把指定的文件还原出来 
tar: 块大小 = 4 
x tt.txt, 290 bytes, 1 tape blocks 
# tar tvf backup.tar //查看里面被压缩了的文件名,并没有解压出来 
tar: 块大小 = 4 
-rw-rw-rw- 1002/1 290 2003 10月 3 02:10 tt.txt 
$tar uf myarch mydir //t a r将比较每个存档文件和用户目录中文件的最近更新时间,然后将任何自从上次存档以来所改变的文件拷贝到档案中


参数 说明 
c 创建一个新的tar文件 
t 列出tar文件的内容 
x 从tar文件中解压出指定的文件 
r 向已有的tar文件追加一个新文件进去 
f 指定文件名 
v 详细模式 
m 将在从一个档案中抽取文件时,不要给它新的时戳


compress 
# compress -v kk.txt mm.txt 
kk.txt: 压缩:58.18% -- 用kk.txt.Z替换 //注意原来的文件将被.Z所替代 
mm.txt: 压缩:1.33% -- 用mm.txt.Z替换 
# ls 
err.txt kk.txt.Z mm.txt.Z tt.txt 
# uncompress -v ok2.txt.Z //解压缩,注意原来的.Z文件将被ok2.txt替代 
# uncompress -c test1.Z|more //只是查看文件的内容,没有解压出来

zip 
#zip winzip test1.txt test2.txt //生成winzip.zip文件 
#unzip winzip.zip //解压缩

gzip 
# gzip -v test2 test3 
test2: 0.0% -- replaced with test2.gz//注意把原来的给替换了 
test3: 0.0% -- replaced with test3.gz 
# ls 
test2.gz test3.gz

gunzip 
#gunzip test2.gz

gzcat 
#gzcat tt.txt.gz 
-rw-r--r-- 1 keven user 32 10月 2 07:51 test.txt 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test3 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test2 
-rw-r--r-- 1 keven user 0 9月 30 08:54 test1


用户和权限 
chmod 
#chmod u+r test.txt 
#chmod go+rw test.txt 
#chmod o-w test.txt 
#chmod 555 test.txt 
#chmod +t dir //粘带位权限 
#chmod g+s file.txt //setuid 
#chmod u+s file.txt //setgid

chown 
#chown new_owner filename 
#chown -R new_owner directoryname

chgrp 
#chgrp new_group filename 
#chgrp -R new_group filename 
nice 
#nice -20 dtterm //优先级增加到20 数值越大优先级越高 
#nice --20 dtterm //优先级减少到20

groups 
$ groups //显示自己所在的组 
adm 
$ groups root //显示该用户属于什么组 
other root bin sys adm uucp mail tty lp nuucp daemon

newgrp 
$newgrp adm //切换到其它的组

umask 
% umask 
22 
起始权限-想得到的权限=umask值

useradd 
#useradd user3 
#useradd -u 1006 -g 4 -d /export/home/user3 -s /bin/sh -c “web user” user3 //完整的添加用户 
#useradd -u 1006 -g 4 -d /export/home/user3 -m -s /bin/sh -c “web user” user3 //创建用户的同时创建主目录文件

参数 说明 
-c 对每个用户的注释,记录每个用户的个人信息 
-d 用户主目录路径 
-m 用来创建用户的主目录,通常与-d路径名一起用 
-g 用户的默认组 
-g 用户的默认gid 
-e 帐号不再有效,通常在创建临时帐号用 
-f 许可用户的最大闲置天数,在创建临时帐号时用到 
-u 用户的uid 
-s 用户的shell路径

userdel 
#userdel user7 //把user7删除,但是不删住目录 
#userdel -r username //把主目录一起删除

usermod 
# usermod -u 1005 -c adminisrator cole //修改用户的一些信息 
#usermod -G group1 ,group2 username //把用户添加到多个组 
# usermod -G sys,sysadmin cole 
# groups cole 
mail sys sysadmin 
# usermod -g apache cole //主要组 
# groups cole 
apache

passwd 
#passwd -f user //下次登陆时强制其改变密码 
#passwd user //修改其密码 
#passwd -l user //锁住用户不能登陆 
#passwd -x 30 user //口令有效期为30天 
#passwd -w 3 user //口令失效的前3天提醒用户修改

groupadd 
# groupadd -g 2000 usergroup

groupdel 
#groupdel groupname

groupmod 
#groupmod -n newname oldname 
#groupmod -g gid groupname //修改其gid 
#groupmod -g gid -n newname oldname


进程管理

ps

字段概述: 
F十六进制标志,它们加起来表示进程的当前状态。 
如下所述:00 进程终止,而且它们在进程表中的空间已释放。01 系统进程,长驻内存02 进程被父进程跟踪04 进程被父进程跟踪而且已被停止08 该进程无法被信号量唤醒10 该进程当前在内存中,而且被锁定直到一个事件完成20 进程不能被交换出

S 进程当前状态,由以下字母之一显示: 
O 当前正在处理器上运行 
S 睡眠;等待I/O事件完成 
R 运行结束I 空闲;进程被创建 
Z 僵死。进程已终止 
T由于父进程跟踪而停止 
X 等待更多的内存 
UID进程所有者的用户ID 
PID进程ID 
PPID父进程ID 
C 进程的CPU使用情况(即进程占CPU时间的百分比) 
PRI 进程优先权方案。较大的数表示较低的优先权 
NI 进程的nice值,该值与优先权方案相关联。使一个

猜你喜欢

转载自tianmaotalk.iteye.com/blog/877064
今日推荐