2008年4月25日星期五

华为3928与锐捷2150之间端口汇聚的配置

锐捷2150的配置:

interface aggregatePort 1
description JiLianAP 
switchport mode trunk(如果是加入的端口是trunk模式,必须加这个)

interface fastEthernet 0/46
port-group 1
description JiLianKou-1 
switchport mode trunk
spanning-tree bpdufilter enabled
  ip dhcp snooping trust
!
interface fastEthernet 0/47
port-group 1
description JiLianKou-2 
switchport mode trunk
spanning-tree bpdufilter enabled
  ip dhcp snooping trust
!
interface fastEthernet 0/48
port-group 1
description JiLianKou-3 
switchport mode trunk
spanning-tree bpdufilter enabled
  ip dhcp snooping trust
!

 

#
link-aggregation group 1 mode manual(用manual方式就可以和锐捷上述配置正常通信)
#

#
interface Ethernet1/0/23
port link-type trunk
port trunk permit vlan all
port link-aggregation group 1
#
interface Ethernet1/0/24
port link-type trunk
port trunk permit vlan all
port link-aggregation group 1
#

 

用了AG后测试数据:

2150#show inter fa0/47 co
Interface : Fa0/47                                                           
5 minute input rate  : 1105576 bits/sec, 2032 packets/sec
5 minute output rate : 9000600 bits/sec, 1037 packets/sec
InOctets             : 200029718
InUcastPkts          : 2939505
InMulticastPkts      : 3
InBroadcastPkts      : 1865
OutOctets            : 979403645
OutUcastPkts         : 903196
OutMulticastPkts     : 981
OutBroadcastPkts     : 0
Undersize packets    : 0
Oversize packets     : 0
collisions           : 0
Fragments            : 0
Jabbers              : 0
CRC alignment errors : 0
AlignmentErrors      : 0
FCSErrors            : 0
dropped packet events (due to lack of resources): 0
packets received of length (in octets):

2150#show inter fa0/48 cou
Interface : Fa0/48                                                           
5 minute input rate  : 1614960 bits/sec, 2880 packets/sec
5 minute output rate : 93628408 bits/sec, 8745 packets/sec
InOctets             : 174371625
InUcastPkts          : 2483422
InMulticastPkts      : 0
InBroadcastPkts      : 10
OutOctets            : 12699762636
OutUcastPkts         : 9822432
OutMulticastPkts     : 116
OutBroadcastPkts     : 442
Undersize packets    : 0
Oversize packets     : 0
collisions           : 0
Fragments            : 0
Jabbers              : 0
CRC alignment errors : 0
AlignmentErrors      : 0
FCSErrors            : 0
dropped packet events (due to lack of resources): 0
packets received of length (in octets):

 

结论:加入AG的两个口都用流量,一个大,一个小,起到一定程度的负载均衡作用。

2008年4月21日星期一

论广播风暴的成因、预防及排障

 

论广播风暴的成因、预防及排障

[ 作者:佚名    转贴自:本站原创    点击数:623    更新时间:2007-10-10    文章录入:luokang

一、成因
广播风暴指过多的广播包消耗了大量的网络带宽,导致正常的数据包无法正常在网络中传送,通常指一个广播包引起了多个的响应,而每个响应又引起了多个得响应,就像滚雪球一样,把网络的所有带宽都消耗殆尽。该现象通常是由于网络环路、故障网卡、病毒等引起的。
二、预防(以CISCO catalyst switch为例)
1、首先使用网管分析你网络的baseline,这样可以明确你的网络当中正常情况下的广播包比例是多少。
2、目前绝大多数交换机都支持广播风暴抑制特性,配置了这个特性以后,你可以控制每个端口的广播包维持在特定的比例之下,这样可以保留带宽给必须的应用。
配置:(以CISCO catalyst switch为例)
Int XX
storm-control broadcast level 20.00

switch#sh storm

Interface Filter State Level Current
--------- ------------- ------- -------
Fa1/0/1 Forwarding 20.00% 0.00%
3、针对缺省STP配置无法排除的网络环路问题,利用STP的BPDUguard特性来预防广播风暴。此种环路情况示意图如下:
switch------hub(portA---portB)
Switch启用了STP,而hub则被人有意无意的用一根网线联起来,导致引起了环路。SWITCH的端口不会收到其他交换机或本交换机其他端口的BPDU,不会触发该端口的STP决策过程,也就不可能blocking该端口,这样就会引起广播风暴。我们可以利用CISCO STP的BPDUguard特性来预防这一点。
int xxx
spanning-tree bpduguard enable
***值得注意的是bpduguard可以在全局下配置,也可以在每端口的基础上配置。如果在全局下配置,则只对配置了portfast的端口起作用,如果在端口下配置,则不用配置portfast

三、排障(以CISCO catalyst switch为例)
如果网络中已经产生了网络风暴(现象通常为网络丢包、响应迟缓、时断时通等),则可以利用如下的方法来排障
1、首先确认是否是网络风暴或其他异常流量引起的网络异常,在核心交换机上
Switch>sh proc cpu | e 0.00
CPU utilization for five seconds: 19%/0%; one minute: 19%; five minutes: 19%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
15 20170516 76615501 263 0.31% 0.13% 0.12% 0 ARP Input
26 7383266801839439482 401 5.03% 4.70% 5.08% 0 Cat4k Mgmt HiPri
27 8870781921122570949 790 5.67% 7.50% 6.81% 0 Cat4k Mgmt LoPri
43 730060152 341404109 2138 6.15% 5.29% 5.28% 0 Spanning Tree
50 59141788 401057972 147 0.47% 0.37% 0.39% 0 IP Input
56 2832760 3795155 746 0.07% 0.03% 0.01% 0 Adj Manager
58 4525900 28130423 160 0.31% 0.25% 0.18% 0 CEF process
96 20789148 344043382 60 0.23% 0.09% 0.08% 0 Standby (HSRP)
如果交换机的CPU利用率较高,且大部分的资源都被“IP Input”进程占用,则基本可以确定网络中有大流量的数据
2、查找异常流量是从交换机的那一个端口来的:
switch #sh int | i protocol|rate|broadcasts
FastEthernet1/0/1 is up, line protocol is up (connected)
Queueing strategy: fifo
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 2000 bits/sec, 3 packets/sec
Received 241676 broadcasts (0 multicast)
如果找到一个端口的input rate非常高,且接收到的广播包也非常多,则基本可以找到来源,如果该端口下联的也是可管理的交换机,则再次执行此过程,直到找到一个连接PC或者HUB的端口
3、shutdown该端口
int xx
shutdown
4、查找产生异常流量的根源
如果是HUB环路,则拆掉环;如果是病毒,则做杀毒处理;如果是网卡异常,则更换网卡。此部分不详述。
5、确认交换机的CEF功能是否启用,如果没有,则需要启用,可以加速流量的转发
switch>sh ip cef
配置CEF:
全局模式下输入
ip cef

论广播风暴的成因、预防及排障

2008年4月18日星期五

solaris文件系统的备份与恢复 - Solaris - lovegqin

 

solaris文件系统的备份与恢复

1.备份计划:
备份介质 磁带,软盘
备份哪个文件系统
备份周期  
2.备份种类:
全盘备份 级别为0
增量备份 级别1~~9

例:周一 周二 周三 周四 周五 周六 周日
1 2 3 4 5 6 7

0 5 5 5 5 5 5

8 9 10 11 12 13 14

    3 5 5 5 5 5 5

0级:月备份
3级:周备份
5级:日备份

3.以磁带机为例
磁带机的逻辑设备名:/dev/rmt/0
/dev/rmt/0n
备份/export/home
命令:ufsdump 0cuf /dev/rmt/0 /export/home
0:备份级别,此指的是全盘备份
c:盒式磁带
u:更新备份纪录
f:要操作的设备名
/export/home:要备份的文件系统
注意:备份时,应选择在单用户下。

4. 文件系统的恢复
例:/export/home 遭到了破坏,它对应的的设备名:/dev/dsk/c0t3dos7
#init s
#umount /export/home
#newfs /dev/rdsk/c0t3d0s7
#mount /dev/dsk/c0t3d0s7 /export/home
#cd /export/home
#ufstestore rvf /dev/rmt/0
(r:restore;v:列出文件名字;f:要操作的设备名字)
此过程对/ /usr 分区不适用

以上文章转载于 : http://blog.csdn.net/s

solaris文件系统的备份与恢复 - Solaris - lovegqin

Solaris上的性能监控 - Solaris - lovegqin

 

Solaris上的性能监控

Solaris提供了性能监控命令,为CPU提供使用统计,为整个系统提供中断、交换、分页和上下文转换功能。

这些监控命令包括:
1.vmstat
     vmstat命令报告Solaris上的进程、虚拟内存、磁盘、分页和CPU的活动情况。

     % vmstat 2 (每2秒显示系统活动情况)

2.sar

   sar命令用于监控交换、分页、磁盘和CPU活动。

  $sar -p 5 10(每5秒显示10次分页活动的概要)

3. iostat

    iostat命令报告终端和磁盘的活动。该报告显示哪些磁盘是忙的(该信息在平衡I/O负载时有用)。

    $iostat  2 5(每5秒显示2次终端和磁盘活动)

4.swap

   swap命令报告关于交换空间使用的信息。交换空间的不足可以导致系统悬挂,减慢响应时间。

5. mpstat

   mpstat命令报告每个处理器的统计。

以上文章转载于: http://blog.csdn.net/

Solaris上的性能监控 - Solaris - lovegqin

Solaris 下Swap分区的简单介绍 - Solaris - lovegqin

 

Solaris 下Swap分区的简单介绍

Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中 的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很 长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程 序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时 ,才进行Swap交换。这种现象对于计算机使用者是经常遇到的。有一点要声明的是,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果 这样的话,Swap会不堪重负),有相当一部分的数据直接交换到文件系统。例如,有的 程序会打开一些文件,对文件进行读写(其实每个程序都至少打开一个文件,那就是运行程序本身),当这些程序的内存空间需要交换出去时,文件部分的数据就没有必要放到   Swap空间中了,如果是读文件操作,那么内存数据直接就释放了,不需要交换出来,因
为下次需要时,直接从文件系统就能恢复;如果是写文件,只需要将变化的数据保存到文 件中,以便恢复。但是那些用malloc( 3C )和new函数(c++ 语言中分配空间的语句)生成的对象的数据则不同,需要  Swap空间,因为它们在文件系统中没有相应的“储备”文件,因此被称为“匿名”  (Anonymous)的内存数据,这类数据还包括堆栈中的一些状态和变量数据等,所以说, Swap空间是“匿名”数据的交换空间。
例如:Web服务器能根据不同的请求数量衍生出多个服务进程  (或线程),如果Swap空间用完,则服务进程无法进动,通常会出现"application is   out of memory"的错误,严重时会造成服务进程的死锁。
通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于 64M ,通常Swap空间 的大小应是物理内存的2-2.5倍(Solaris 2以上的版本有所变化,见下文)。但根据不 同的应用,应有不同的配置:如果是小的桌面系统,只需要较小的Swap空间,而大的服 务器系统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服务器会随 着访问量的增加,对Swap 空间的要求也会增加,具体配置参见各自服务器产品的说明。
另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘I/O的操作, 如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于所有的Swap,这样会大 大均衡I/O的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交 换区变得很忙,使系统大多数时间位于等待状态,效率很低,用性能监视工具就会发现 ,此时的CPU并不很忙,而系统却慢,这说明,瓶颈在I/O上,依靠提高CPU的速度是解决 不了问题的。
性能监视
最常用的是Vmstat命令,在大多数Unix平台下都有此命令,此命令可以查看大多数性能 的指标。
另外使用swap -s 也能简单的查看当前swap资源的使用情况。例如:
# swap -s  
你知道吗?虚拟Swap空间与 /tmp目录有相当大的关系。Sun在实现/tmp目录时,充分考 虑了应用程序运行的效率。许多应用程序,特别是数据库服务都会频繁使用 /tmp目录作 为临时数据保存区,而Solaris将 /tmp目录下的文件都放在内存中而不是硬盘里,这样 会大大提高应用程序的效率。 但是/tmp目录的空间是从系统虚拟空间里挤出来的,是虚 拟Swap空间的一部分。如果说,你用完了/tmp空间,也就是用完了Swap空间,所以要小 心监视系统的/tmp目录的使用情况,千万别用光了,否则系统会瘫痪!下面两点建议作为
参考:
1.在Mount /tmp目录时,使用(-o Size)选项来控制/tmp目录的大小。
2.当使用编译器编译文件时,如果不想占用Swap空间,则用TMPDIR环境变量指向另外一 个临时目录,而不是/tmp目录。
增加Swap空间
1.成为超级用户 $su - root  
2.创建Swap文件 #mkfile nnn[klblm] filename  
如:#mkfile  100m  swapfile1  
3.激活Swap文件
#/usr/sbin/swap -a /path/filename  
Swap文件必须以绝对路径来指定,filename指的是上一步创建的文件。
4.现在新加的Swap文件已经起作用了,但系统重新启动以后,并不会记住前几步的操作 。因此要在/etc/vfstab文件中记录文件的名字,和Swap类型,如:
/path/filename - - Swap - no -
5.效验Swap文件是否加上 /usr/sbin/swap -l  
删除多余的Swap空间
1.成为超级用户
2.使用swap -d 命令收回swap空间。
#/usr/sbin/swap -d /path/filename  
3.编辑/etc/ufstab文件,去掉此Swap(交换)文件的实体。
4.从文件系统中回收此文件。
#rm swap-filename  
5.当然,如果此Swap(交换)空间不是一个文件,而是一个分区,则需创建一个新的文件系统,再挂接到原来的文件系统上。

以上文章转载于 : http://blog.csdn.net/

Solaris 下Swap分区的简单介绍 - Solaris - lovegqin

[转]Solaris 10 X86安装备忘 - 精 - 绵雨之后的下午,静看着西天的云彩

 

[转]Solaris 10 X86安装备忘

Solaris 10 X86安装备忘

原文出处: http://blog.csdn.net/yayong
版权所有: 转载时请务必以超链接形式标明文章原始出处、作者信息及本声明

1. 系统环境

HW:
    CPU AMD Athlon 2000+
    MEM 512M
    DISK 120G
    NIC 主板集成的VIA网卡

SW:
    OS Solaris 10 x86 GA 版
    App vpn3000 client 分别来自两个开源项目:  
        - Virtual tunnel fromhttp://vtun.sourceforge.net/
        - VPNC fromhttp://www.unix-ag.uni-kl.de/~massar/vpnc/

2. Solaris 10 X86的安装

关于Solaris的安装已有很多文章,这里不再赘述,只给出要点

2.1 关于硬盘分区

对于IDE硬盘,需要安装在单独的主分区上
另外,为和同一机器上的其他OS(winxp,linux)交换数据的便利,建议硬盘上至少再winxp留一个FAT32的逻辑驱动器
Solaris 10的新分区类型是Solaris2,其主分区号不再和Linux的swap冲突,所以不用担心会对Linux产生影响

2.2 关于硬件驱动

Solaris 10 X86对X86硬件的支持已经大大增强,安装过程中我的机器上只有网卡没有被检测出来。
对于不能正确识别的硬件,需要根据硬件的类型到SUN官方网站的HCL上去寻找是否有相关的Driver。
幸运的是VIA主板集成的网卡已经有第3方开发的driver,可以在HCL里找到并下载:
http://www.sun.com/bigadmin/hcl/

2.3 关于Xwindow

建议选择Xorg作为默认的Xserver,并且选择JDS作为默认桌面

2.4 关于FAT32的mount

安装完毕后,在/etc/vfstab增加一行自动mount winxp下FAT32逻辑驱动器的设置

/dev/dsk/c0d0p0:c      -       /winxp pcfs    2      yes     -

3. 环境设置及应用软件安装

可以将root的默认shell改成bash

# vi /etc/passwd

root:x:0:0:Super-User:/:/usr/bin/bash

Solaris已经自带了一些开源软件,例如mozilla,gcc
如果需要使用,最好将 /usr/sfw/bin加到环境变量PATH里。

这是我的/etc/profile增加的设置:

PATH=$PATH:/usr/sfw/bin:/opt/csw/bin:/usr/ccs/bin:$PATH;
export PATH

EDITOR=/opt/sfw/bin/vim
export EDITOR

PS1="\h:\w#"
export PS1

另外,还有以下途径可以获得各种开源社区软件

1. Solaris的Companion CD 
2. www.sunfreeware.com这里包含了一些最常用的开源软件
3. www.blastwave.org这里的开源软件最全,强烈推荐

关于Solaris环境及应用软件,还可以参考我的以下几篇文章:

Solaris上的开发环境安装及设置
Solaris做desktop必装的10个软件
UsingSubversion and ViewCVS on Solaris 10

按照前面文章安装好所有软件后,设置bash的工作环境:

cat /.bashrc

TERM=dtterm
export TERM

alias ls='/usr/local/bin/ls --color'
alias vi='/opt/sfw/bin/vim'

PS1="\h:\w#"
export PS1

这样,带颜色的ls和vim的语法高亮,Firefox,thounderbird,msn,qq,office,媒体播放就全都具备了。

4. ADSL的设置

4.1 Solaris DNS客户端设置

#cp /etc/nsswitch.dns /etc/nsswitch.conf

这是我的/etc/resolv.conf配置文件内容:

nameserver 202.106.46.151

4.2 ISP的配置文件

#cat /etc/ppp/peers/dialconf

sppptun
plugin pppoe.so
connect "/usr/lib/inet/pppoec rh0"  #我的网卡接口是rh0
persist
user "*adslname"         # 网通的account name总是*号开头的用户名,假定我的是*adslname
noauth                 # do not authenticate the ISP's identity (client)
noipdefault            # assume no IP address; get it from ISP
defaultroute           # install default route; ISP is Internet gateway
updetach               # log errors and CONNECT string to invoker
noccp
novj
noaccomp
nopcomp

4.3 用户验证文件
#cat /etc/ppp/chap-secrets

"*adslname"      *       "111111"

注意: "*adslname",*,"111111"之间使用了[TAB]而不是空格,这里假定口令是111111
如果你的isp需要相应设定 /etc/ppp/chat-secrets,内容格式相似

4.4 创建拨号Shell文件

#cat /opt/adsl

sppptun plumb pppoed rh0
sppptun plumb pppoe rh0
sppptun query
/usr/bin/pppd call dialconf
echo "Link Successfully..."

4.5 拨号测试

#/opt/adsl

rh0:pppoed
rh0:pppoe
rh0:pppoed
rh0:pppoe
Serial connection established.
Using interface sppp0
Connect: sppp0 <--> /dev/sppptun
Remote message: Welcome to use QuidwayROUTER, Huawei Tech.^M^J #呵呵,原来是华为的路由器
local  IP address 221.216.249.95
remote IP address 61.51.112.1
Link Successfully...

#ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL>mtu 8232 index 1
        inet 127.0.0.1 netmaskff000000
rh0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500index 2
        inet 192.168.80.1 netmaskffffff00 broadcast 192.168.80.255
        ether 0:c:6e:8b:d2:94
sppp0:flags=10010008d1<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST,IPv4,FIXEDMTU>mtu 1492 index 3
       inet 221.216.249.95 --> 61.51.112.1 netmask ffffff00

红色部分就是adsl建立的接口

#ping 216.239.53.9
216.239.53.9 is alive

#ping www.sina.com.cn
www.sina.com.cn is alive

4.6 断开adsl

#pkill pppd

5. VPN3000的设置

编译过程略

5.1 VPN网关参数的配置

#cat default.conf

Interface name tun0
IPSec gateway 211.103.22.21 #这是VPN网关的地址
IPSec ID vpn3000           #这里是你的vpngroup id
IPSec secret vpn3000        #这里是你的vpn grouppassword  
Xauth username loginname    #这里是你的loginname
IKE DH Group dh2
Perfect Forward Secrecy nopfs

5.2 连接脚本的设置

#cat vpnc-connect

#!/usr/bin/ksh
#*VPNGATEWAY            -- vpn gateway address (always present)
#*TUNDEV                -- tunnel device (always present)
#* INTERNAL_IP4_ADDRESS   -- address (always present)
#* INTERNAL_IP4_NETMASK   -- netmask (often unset)
#* INTERNAL_IP4_DNS       -- list of dnsserverss
#* INTERNAL_IP4_NBNS      -- list of winsservers
#* CISCO_DEF_DOMAIN       -- defaultdomain name
#*CISCO_BANNER          -- banner from server

defr=/var/run/vpnc/defaultroute
vpngateway=/var/run/vpnc/vpngateway
pid=/var/run/vpnc/pid

export LD_LIBRARY_PATH="`dirname $0`":$LD_LIBRARY_PATH

if [ -z "$VPNGATEWAY" ]; then
    if [ -x "`which vpnc`" ]; then
        VPNC="`which vpnc`"
    elif [ -x /usr/local/sbin/vpnc ]; then
        VPNC=/usr/sbin/vpnc
    elif [ -x /usr/sbin/vpnc ]; then
        VPNC=/usr/sbin/vpnc
    elif [ -x `dirname $0`/vpnc ]; then
        VPNC="`dirname $0`"/vpnc
        echo $VPNC
    else
        echo No vpnc daemon found,aborting...
        exit 1
    fi
    for i in "$gateway" "$defr" "$pid"; do
        mkdir -p "`dirname $i`"
    done
    PID="`cat "$pid" 2> /dev/null`"
    if [ "$PID" ]; then
        if kill -0 "$PID" > /dev/null2>&1; then
            echo "vpncfound running (pid: $PID, pidfile: $pid)"
            exit 1
        fi
    fi
    exec "$VPNC"--udp --pid-file "$pid" --script "$0""$@" || exit 1  #注意--udp指定了VPN的工作方式是udp
fi

ifconfig $TUNDEV inet $INTERNAL_IP4_ADDRESS \
    destination $INTERNAL_IP4_ADDRESS \
    netmask 255.255.255.255 mtu 1412 up

current_gateway=`netstat -rn | grep ^default| awk '{ print $2 }'`
echo $current_gateway > "$defr"
echo "$VPNGATEWAY" > "$vpngateway"

route add $VPNGATEWAY $current_gateway
route delete default $current_gateway
route add default $INTERNAL_IP4_ADDRESS -interface

# Takes care of DNS
if [ -f "/etc/resolv.conf" ]; then
    mv /etc/resolv.conf /etc/resolv.conf.saved-by-vpnc
fi

echo "# vpnc generated file" > /etc/resolv.conf
echo "search $CISCO_DEF_DOMAIN" >> /etc/resolv.conf
echo "$INTERNAL_IP4_DNS" \
| awk '{for (i=1;i<=NF;i++)
    printf("nameserver %s\n", $i) }' >>/etc/resolv.conf
exit 0

5.2 连接测试

./vpnc-connect default.conf

# ifconfig -a

lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL>mtu 8232 index 1
        inet 127.0.0.1 netmaskff000000
rh0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500index 2
        inet 192.168.80.1 netmaskffffff00 broadcast 192.168.80.255
        ether 0:c:6e:8b:d2:94
sppp0:flags=10010008d1<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST,IPv4,FIXEDMTU>mtu 1492 index 3
        inet 221.216.249.95 -->61.51.112.1 netmask ffffff00
tun0:flags=10010008d1<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST,IPv4,FIXEDMTU>mtu 1412 index 4
       inet 10.13.22.19 --> 10.13.22.19 netmask ffffffff

红色部分就是vpn建立的接口

5.3 断开连接

./vpnc-disconnect

[转]Solaris 10 X86安装备忘 - 精 - 绵雨之后的下午,静看着西天的云彩

Solaris中的酷命令 - Solaris - lovegqin

 

Solaris中的酷命令

Sun eCommunity 作者  Peter Baer Galvin   Solaris 中的命令非常之多,以致很难从中分离出那些很酷的命令。例如,有些命令报告程序进行每个系统调用时所要花费的时间,有些命令动态地显示系统活动信息,而且这些命令大部分都同时包含在了 Solaris 8 和 Solaris 9 中。这里,我将重点介绍其中一些命令,您或许会发现它们特别有用。
    系统管理员是工具的使用者。通过实践经验,我们掌握了更多工具,并且增强了诊断问题以及实施解决方案的能力。本次专栏中包含的命令是通过经验、朋友、熟人以及出席 9 月举行的 SunNetwork 2002 大会收集到的。Solaris 内核的开发人员 Brian Cantrill 和 Mike Shapiro 所讲的"The /procodile Hunter"让人很有启发并令人感到惊恐,因为 Cantrill 编写代码来说明一个观点的速度比 Shapiro 能够讲解该观点的速度还要快!
有用的 Solaris 命令
truss -c (Solaris >= 8):这是个令人震惊的 truss 选项,它提供了被追踪命令的全面概要信息:
$ truss -c grep asdf work.doc
syscall               seconds   calls  errors
_exit                   .00       1
read                    .01      24
open                   .00       8      4
close                   .00       5
brk                     .00      15
stat                     .00       1
fstat                    .00       4
execve                  .00       1
mmap                   .00      10
munmap                 .01       3
memcntl                 .00       2
llseek                   .00       1
open64                  .00       1
                         ----     ---    ---
sys totals:               .02      76      4
usr time:                .00
elapsed:                 .05
它还能显示正在运行的进程的概要数据。在本例中,数据表明了从启动 truss 命令到用 control-c 来终止 truss 执行的期间,进程到底做了些什么。这对于判断进程为何被挂起是很理想的,因为您无须费力浏览整个 truss 的输出。
truss -d 和 truss -D (Solaris >= 8):这两个选项表明与truss显示的每个系统调用相关的时间信息。这对于找出定制代码或商业代码中的问题很有帮助。例如:
$ truss -d who
Base time stamp:  1035385727.3460  [ Wed Oct 23 11:08:47 EDT 2002 ]
0.0000 execve("/usr/bin/who", 0xFFBEFD5C, 0xFFBEFD64)  argc = 1
0.0032 stat("/usr/bin/who", 0xFFBEFA98)                = 0
0.0037 open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
0.0042 open("/usr/local/lib/libc.so.1", O_RDONLY)      Err#2 ENOENT
0.0047 open("/usr/lib/libc.so.1", O_RDONLY)            = 3
0.0051 fstat(3, 0xFFBEF42C)                            = 0
. . .
truss -D 对于显示系统调用间的延迟时间更加有用:
Dilbert> truss -D who
0.0000 execve("/usr/bin/who", 0xFFBEFD5C, 0xFFBEFD64)  argc = 1
0.0028 stat("/usr/bin/who", 0xFFBEFA98)                = 0
0.0005 open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
0.0006 open("/usr/local/lib/libc.so.1", O_RDONLY)      Err#2 ENOENT
0.0005 open("/usr/lib/libc.so.1", O_RDONLY)            = 3
0.0004 fstat(3, 0xFFBEF42C)                            = 0
这个例子中,stat 这个系统调用要比其他系统调用占用更长的时间。
truss -T:这是个很棒的调式帮助选项。在执行指定的系统调用时,它可以终止进程("-U"也执行同样的操作,不过是在进行用户级的函数调用时)。此时,将会获取用于进一步分析的 core 文件,或者使用一些 /proc 工具来确定进程各个方面的状态。
truss -l(在 Solaris 9 中已改进):显示多线程进程中每个调用的线程号。Solaris 9 中的 truss -l 经过了改进,最后还可以监视多线程的应用程序的执行。
Truss 的确是个功能强大的工具。例如,可在 core 文件中用于分析问题产生的原因。还可以通过"-u"选项来显示用户级的库(既可以为系统库,也可为程序员库)调用的详细信息。
pkg-ge:这是个用于自动获取免费软件包的好工具(http://www.bolthole.com/solaris)。它通过 /etc/pkg-get.conf 来配置。一旦配置好并运行后,就运行 pkg-get -a 来获取可用包的列表以及运行 pkg-get -I 来获取并安装给定的包。
Plimit (Solaris >= 8):这个命令用于显示并设置正在运行的进程中的每个进程的限制。如果一个长时间运行的进程超过了某个限制(如打开的文件数目),使用该命令就十分方便。因为无须使用 limit 命令后重新运行该进程,plimit 就可以修改正在运行的进程。
coreadm (Solaris >= 8):在以前没有 coreadm 命令时,core dumps 被置于进程的工作目录下。并且 core 文件将会互相覆盖。而这个问题和其他更多问题都可以由 coreadm 来处理,它是一个管理 core 文件生成的工具。您可以通过该工具指定是否保存 core、core存储的位置和应保留的版本数目,等等。所有这些设置信息都是在重启前通过 coreadm 修改 /etc/coreadm.conf 来保存的。
pgrep (Solaris >= 8):pgrep 在 /proc 中搜索符合给定规则的进程,并返回进程的 ID。其中一个很棒的选项是"-n",它返回的是最新的满足条件的进程号。
preap (Solaris >= 9):除去僵尸进程。任何困于"z"状态(由 ps 命令显示)的进程,该命令都可将之从系统中清除。
pargs (Solaris >= 9):显示进程的参数及环境变量。
nohup -p (Solaris >= 9):nohup 命令可以用于启动一个进程,因此即使用于启动进程的 shell 被关闭(即进程获得"SIGHUP"信号),该进程仍然可以继续运行。这对于让一个后台任务不管碰到何种情况仍然可以继续运行是很有用的。但是如果您已经启动了一个进程,但稍后希望使它免受 HUP 信号的影响,该怎么办呢?在Solaris 9中, nohup -p 可以获取进程 ID 并使之忽略 SIGHUP 信号。
prstat (Solaris >= 8):prstat 也是 top 命令,但拥有更多功能。这两个命令都可以提供一个屏幕的关于进程的有用信息以及其他的相关信息,并且能频繁地更新,总之是个很棒的显示系统性能的窗口。但 prstat 要比 top 更加精确。它还提供了一些很好的选项。"-a"可以同时显示进程与用户的信息(默认由 CPU hog 排序)。"-c"使其执行很像 vmstat(在前一个报告下面接着显示新的报告)。"-C"显示在处理器集中的进程。"-j"显示一个"工程"中的进程。"-L"显示每个线程和每个进程的信息。"-m"和"-v"显示每个进程的很多详细的性能信息(包括 pages、traps、lock wait 和 CPU wait)。所有输出数据都可以按照在内存中设置的大小、虚拟内存大小、运行时间等等条件来排列。prstat 在没有 top 的系统中是个十分有用的工具,并且由于它的精确性,所以很可能取代 top(有些地方考虑到它是个被支持的程序而使用它)。
trapstat (Solaris >= 9):trapstat 以及 lockstat 和 kstat 是 Solaris 中最难以理解的命令。它们显示一个运行的操作系统内部中最具体的细节信息。每个命令对于解决 Solaris 系统中发生的古怪问题都是必不可少的。最好是将它们的输出随错误报告一起提交,但进一步的研究揭示,它们也能为一般应用提供有用信息。
vmstat -p (Solaris >= 8):在这个选项可以使用之前,要确定是哪种类型的内存命令导致系统页面调度几乎是不可能的(请查阅"se toolkit")。vmstat -p 可以解决此问题,因为它不但显示您的系统是否处于内存紧缺的情况(通过"sr"栏),而且还显示是否是由以下内容导致的:应用程序的代码,应用程序的数据或 I/O 。"-p"能够真正帮助找出 Solaris 中导致神秘的内存问题的原因。
pmap -x (Solaris >= 8,Solaris >= 9中进行了错误修复):如果已经得知进程中有内存问题,并且需要获得更多内存使用的详细信息,就可以使用 pmap -x。该命令将解释指定 ID 的目标进程的整个内存映射信息,如下:
# pmap -x 1779
1779:   -ksh
Address  Kbytes     RSS    Anon  Locked Mode   Mapped File
00010000     192     192       -       - r-x--  ksh
00040000       8       8       8       - rwx--  ksh
00042000      32      32       8       - rwx--    [ heap ]
FF180000     680     664       -       - r-x--  libc.so.1
FF23A000      24      24       -       - rwx--  libc.so.1
FF240000       8       8       -       - rwx--  libc.so.1
FF280000     568     472       -       - r-x--  libnsl.so.1
FF31E000      32      32       -       - rwx--  libnsl.so.1
FF326000      32      24       -       - rwx--  libnsl.so.1
FF340000      16      16       -       - r-x--  libc_psr.so.1
FF350000      16      16       -       - r-x--  libmp.so.2
FF364000       8       8       -       - rwx--  libmp.so.2
FF380000      40      40       -       - r-x--  libsocket.so.1
FF39A000       8       8       -       - rwx--  libsocket.so.1
FF3A0000       8       8       -       - r-x--  libdl.so.1
FF3B0000       8       8       8       - rwx--    [ anon ]
FF3C0000     152     152       -       - r-x--  ld.so.1
FF3F6000       8       8       8       - rwx--  ld.so.1
FFBFE000       8       8       8       - rw---    [ stack ]
-------- ------- ------- ------- -------
total Kb    1848    1728      40       -
这里,我们可以看到每一块内存,它们被用于做什么,占用了多大的(虚拟的和真实的)空间以及其模式信息。
df -h (Solaris >= 9):这个命令在 Linux 上已经应用十分普遍,刚刚转移到了 Solaris 平台。df -h 以一种方便阅读的形式显示文件系统的概要信息:
$ df -h
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c0t0d0s0      4.8G   1.7G   3.0G    37%    /
/proc                    0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
fd                       0K     0K     0K     0%    /dev/fd
swap                   848M    40K   848M     1%    /var/run
swap                   849M   1.0M   848M     1%    /tmp
/dev/dsk/c0t0d0s7       13G    78K    13G     1%    /export/home
结束语
    每个管理员都有一套日常使用的工具,以及另外一套在紧急情况下帮助解决问题的工具。本文介绍了各种各样的的命令及选项,它们不广为人知但却十分有用。您是否也保存了这样一些偏爱的工具呢?如果有,请也发送给我,让我可以扩展自己的工具集。另外,可以发送一些您不喜欢或是感觉有危险的工具,它们或许也可以变成有用的呢!
    Peter Baer Galvin(http://www.petergalvin.org)是 Corporate Technologies 公司(http://www.cptech.com)的首席技?... 销售商。之前,Peter 曾是 Brown 大学计算机科学系的系统管理员。他为 Byte 和其他杂志撰写文章,也曾为 Pete's Wicked World的安全问题专栏和 Pete's Super Systems 的 Unix Insider(http://www.unixinsider.com)系统管理专栏撰写文章。Peter 还是 Operating Systems Concepts 和 Applied Operating Systems Concepts 这两本教科书的合著者。作为一名顾问和教员,Peter 教授课程并在全球范围的安全与系统管理问题上发表演讲。

以上文章转载于 :http://www.linuxeden.com/

Solaris中的酷命令 - Solaris - lovegqin

2008年4月17日星期四

Vista ce shi

Mircosoft live writer 测试

在装msn的时候提示安装writer,安装上配置好测试一下。活活。