测试之路交流

发布新日志

  • 转结合netstat和awk命令来统计网络连接数

    2011-04-27 11:33:41

    from http://hi.baidu.com/thinkinginlamp/blog/item/afbcab64b1ad81f3f6365453.html

    Shell写起来很简单,效果却很神奇,你可以先尝试执行一下这条命令:

    netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'


    会得到类似下面的结果,具体数字会有所不同:

    LAST_ACK         1
    SYN_RECV         14
    ESTABLISHED      79
    FIN_WAIT1        28
    FIN_WAIT2        3
    CLOSING          5
    TIME_WAIT        1669


    也就是说,这条命令可以把当前系统的网络连接状态分类汇总。

    下面解释一下为啥要这样写:

    一个简单的管道符连接了netstat和awk命令。

    ------------------------------------------------------------------

    先来看看netstat:

    netstat -n

    Active Internet connections (w/o servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    tcp        0      0 123.123.123.123:80      234.234.234.234:12345   TIME_WAIT


    你实际执行这条命令的时候,可能会得到成千上万条类似上面的记录,不过我们就拿其中的一条就足够了。

    ------------------------------------------------------------------

    再来看看awk:

    /^tcp/
    滤出tcp开头的记录,屏蔽udp, socket等无关记录。

    state[]

    相当于定义了一个名叫state的数组

    NF
    表示记录的字段数,如上所示的记录,NF等于6

    $NF
    表示某个字段的值,如上所示的记录,$NF也就是$6,表示第6个字段的值,也就是TIME_WAIT

    state[$NF]
    表示数组元素的值,如上所示的记录,就是state[TIME_WAIT]状态的连接数

    ++state[$NF]
    表示把某个数加一,如上所示的记录,就是把state[TIME_WAIT]状态的连接数加一

    END
    表示在最后阶段要执行的命令

    for(key in state)
    遍历数组

    print key,"\t",state[key]
    打印数组的键和值,中间用\t制表符分割,美化一下。

    如何查看并发数?

    比如我们在做压力测试的时候想看看当前php的并发链接。

    如果php是作为apache(prefork)模块形式安装的,那么可以这样:netstat -anp | grep httpd | wc -l
    如果php是作为cgi方式安装的,那么可以这样:netstat -anp | grep php-cgi | wc -l

  • liunx压缩包

    2011-03-15 09:16:13

    01-.tar格式
    解包:[*******]$ tar xvf FileName.tar
    打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)

    02-.gz格式
    解压1:[*******]$ gunzip FileName.gz
    解压2:[*******]$ gzip -d FileName.gz
    压 缩:[*******]$ gzip FileName

    03-.tar.gz格式
    解压:[*******]$ tar zxvf FileName.tar.gz    (unix下不适合此命令)
    压缩:[*******]$ tar zcvf FileName.tar.gz DirName

    04-.bz2格式
    解压1:[*******]$ bzip2 -d FileName.bz2
    解压2:[*******]$ bunzip2 FileName.bz2
    压 缩: [*******]$ bzip2 -z FileName

    05-.tar.bz2格式
    解压:[*******]$ tar jxvf FileName.tar.bz2
    压缩:[*******]$ tar jcvf FileName.tar.bz2 DirName

    06-.bz格式
    解压1:[*******]$ bzip2 -d FileName.bz
    解压2:[*******]$ bunzip2 FileName.bz

    07-.tar.bz格式
    解压:[*******]$ tar jxvf FileName.tar.bz

    08-.Z格式
    解压:[*******]$ uncompress FileName.Z
    压缩:[*******]$ compress FileName

    09-.tar.Z格式
    解压:[*******]$ tar Zxvf FileName.tar.Z
    压缩:[*******]$ tar Zcvf FileName.tar.Z DirName

    10-.tgz格式
    解压:[*******]$ tar zxvf FileName.tgz

    11-.tar.tgz格式
    解压:[*******]$ tar zxvf FileName.tar.tgz
    压缩:[*******]$ tar zcvf FileName.tar.tgz FileName

    12-.zip格式
    解压:[*******]$ unzip FileName.zip
    压缩:[*******]$ zip FileName.zip DirName

    13-.lha格式
    解压:[*******]$ lha -e FileName.lha
    压缩:[*******]$ lha -a FileName.lha FileName

    14-.rar格式
    解压:[*******]$ rar a FileName.rar
    压缩:[*******]$ rar e FileName.rar    
    rar请到:http://www.rarsoft.com/download.htm 下载!
    解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量
    指定的目录也行):[*******]$ cp rar_static /usr/bin/rar
  • linux系统中的格式转换

    2011-03-09 14:44:29

    用如下命令完成格式转换:$dos2unix,$unix2dos。但这两个命令在Ubuntu发行版本中不存在,可通过:

      $sudo apt-get install tofrodos

      命令安装。之后,再次使用如下文所示的格式即可。

      [root@linux ~]# dos2unix [-kn] file [newfile]

      [root@linux ~]# unix2dos [-kn] file [newfile]

      参数:

      -k : 保留该文件原来的mtime时间格式(不更新文件上次内容经过修改的时间)

      -n : 保留原来的旧文件,将转换后的内容输出到新文件,如:dos2unix -n old new

  • ubuntu硬件信息查询(转)

    2011-01-17 12:02:47

    查看ubuntu硬件信息

          1, 主板信息

          .查看主板的序列号

          --------------------------------------------------

          #使用命令

          dmidecode | grep -i 'serial number'

          #查看板卡信息

          cat /proc/pci

          --------------------------------------------------

          2, cpu信息

          --------------------------------------------------

          #通过/proc文件系统

          1) cat /proc/cpuinfo

          #通过查看开机信息

          2) dmesg | grep -i 'cpu'

          #

          3)dmidecode -t processor

          --------------------------------------------------

          3, 硬盘信息

          --------------------------------------------------

          #查看分区情况

          fdisk -l

          #查看大小情况

          df -h

          #查看使用情况

          du -h

          #

          hdparm -I /dev/sda

          #

          dmesg | grep sda

          --------------------------------------------------

          4, 内存信息

          --------------------------------------------------

          1) cat /proc/meminfo

          2) dmesg | grep mem

          3) free -m

          4) vmstat

          5) dmidecode | grep -i mem

          --------------------------------------------------

          5, 网卡信息

          --------------------------------------------------

          1) dmesg | grep -i 'eth'

          2) cat /etc/sysconfig/hwconf | grep -i eth

          3) lspci | grep -i 'eth'

          --------------------------------------------------

          6, 鼠标键盘和USB信息

          查看键盘和鼠标:cat /proc/bus/input/devices

          查看USB设备:cat /proc/bus/usb/devices

          查看各设备的中断请求(IRQ):cat /proc/interrupts

          7, 显卡信息

          --------------------------------------------------

          1)lspci |grep -i 'VGA'

          2)dmesg | grep -i 'VGA'

          --------------------------------------------------

          8, 声卡信息

          --------------------------------------------------

          1)lspci |grep -i 'VGA'

          2)dmesg | grep -i 'VGA'

          --------------------------------------------------

          7, 其他命令

          .用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)

          .dmesg (查看所有启动时检测到的硬件信息)

          .lspci (显示外设信息, 如usb,网卡等信息)

          .cat /etc/sysconfig/hwconf

          .mpstat

          8, 需要手动安装的工具

          lshw,hwinfo,hal-device-manager

  • 删除virbr0

    2011-01-14 15:25:42


    文章分类:操作系统 删除ubuntu的bridge
    2009-12-10 04:49
    曾经试着容iptables实现通过linux的共享功能,不但不成功,反而给系统莫名奇妙增加一个virbr0接口。
    下面是删除方法:
    sudo brctl show
    bridge name    bridge id        STP enabled    interfaces
    virbr0        8000.000000000000    yes      
    显示bridge,brctl应该是bridge control的缩写。
    sudo ifconfig virbr0 down
    关闭该bridge
    brctl delbr virbr0
    删除bridge
    sudo ifconfig -a 显示结果,virbr0已经从列表中消失了!

    apt-get remove kvm
    apt-get remove qemu
    apt-get remove libvirt
    apt-get remove bridge-utils
  • 恢复/var/cache/apt/archives中的.deb

    2011-01-11 20:54:06

    无意中删除/var/cache/apt/archives中的libc.6-2.11.1-oubuntu7.6-i386.deb

    恢复如下:

    :~$ sudo apt-get clean
    E: Could not get lock /var/cache/apt/archives/lock - open (11: Resource temporarily unavailable)
    E: Unable to lock the download directory

    :~$ sudo rm -rf /var/lib/dpkg/lock


    :~$ sudo apt-get update

    :~$ /var/cache/apt/archives$ ls

      找到libc6_2.11.1-0ubuntu7.6_i386.deb


    参考

    在ubuntu apt-get upgrade的时候,遇到:

    E: Could not get lock /var/cache/

    apt/archives/lock - open (11 Resource temporarily unavailable)
    E: Unable to lock the download directory

    解决办法如下:

    sudo rm -rf /var/cache/apt/archives/lock
    sudo apt-get update

    然后apt-get就恢复正常了。


  • linux 社会

    2010-11-16 22:57:27

       最近接触LINUX系统比较多,从以前的OPENSUSE到现在的obuntu,接触前并没有系统的学过,只是别人在那里说,在在网上查点资料,就这样过了,呵呵
       但是高手马上要走了,以后不懂,没人指点了,再说也不可能一直东拼西筹吧,所以在网上找了一些基础,慢慢的进入到这个里面
       把目前学到的总结一下:
    1、硬盘的分区(window下也没有分过)这个也只是看了理论,没有实际操作
      硬盘与分区的命名:前两个字母 hd:IDE硬盘     sd:SCSI硬盘
                     第三个字母  hda:第一块IDE硬盘     hdb:第二块IDE硬盘     sdc:第三块SCSI硬盘
                     数字:  数字1~4表示主分区或扩展分区,逻辑分区从5开始
    2、linunx 工作区:在屏幕的左下方,可以设置几个工作区,方便多窗口操作
    3、面板:ubnutu 有默认有两个面板,即windown的任务栏
Open Toolbar