linux命令6之nethogs,netstat

linux几个简单命令


(一)NetHogs

主要用于性能监控与优化

NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率。

nethogs特点:

(1)按进程或程序来统计

(2)实时

(3)统计网络带宽利用率


ubuntu下需要安装:

sudo apt-get install nethogs

安装之后,需要用root来执行:

root@myubuntu:/home/uuuu# nethogs

执行后的显示结果:

NetHogs version 0.8.1

    PID USER     PROGRAM                    DEV        SENT      RECEIVED
   1793 uuuu     sshd: uuuu@pts/9           enp0s3     0.459       0.059 KB/sec
      ? root     unknown TCP                           0.000       0.000 KB/sec

  TOTAL                                                0.459       0.059 KB/sec

举例(1):

每5s进行刷新一次。监控所有进程。

nethogs -d 5

举例(2):

监控eth0和eth1两个接口。

nethogs eth0 eth1

举例(3):

查看帮助文档:

man nethogs

使用手册:

NETHOGS(8)                  System Manager's Manual                 NETHOGS(8)

NAME
       nethogs - Net top tool grouping bandwidth per process

SYNOPSIS
       nethogs [-h] [-V] [-d] [-v] [-t] [-c] [-p] [-s] [device(s)]

DESCRIPTION
       NetHogs is a small 'net top' tool. Instead of breaking the traffic down
       per protocol or per subnet, like most such tools do,  it  groups  band‐
       width  by  process - and does not rely on a special kernel module to be
       loaded. So if there's suddenly a lot of network traffic, you  can  fire
       up  NetHogs  and immediately see which PID is causing this, and if it's
       some kind of spinning process, kill it.

   Options
       -h     display available commands usage.

       -V     prints Version info.

       -d     delay for refresh rate.
       -v     select view mode

       -p     sniff in promiscious mode (not recommended).

       -t     tracemode.

       -c     limit number of refreshes

       -s     sort by traffic sent

       device(s) to monitor. By default eth0 is being used.

INTERACTIVE CONTROL
       m      cycle between display modes (kb/s, kb, b, mb)

       r      sort by 'received'

       s      sort by 'sent'

       q      quit

SEE ALSO
       netstat(8) tcpdump(1) pcap(3)
AUTHOR
       Written by Arnout Engelen .

                               14 February 2004                     NETHOGS(8)


(二)NetStat

netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

特点:

(1)查看网络系统的状态

命令netstat参数:

-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-r或--route:显示Routing Table;
-s或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同。

举例(1):

列出所有的端口(监听和非监听)

netstat -a     #列出所有端口
netstat -at    #列出所有tcp端口(t代表的是tcp协议)
netstat -au    #列出所有udp端口(u代表的是udp协议)

列出所有正在监听的端口(l-->Listening)

netstat -l        #只显示监听端口
netstat -lt       #只列出所有监听 tcp 端口
netstat -lu       #只列出所有监听 udp 端口
netstat -lx       #只列出所有监听 UNIX 端口

找出运行在指定端口9090的进程:

netstat -an | grep ':9090'

查找特定的运行的程序mysql:

netstat -ap | grep mysql

你可能感兴趣的:(Linux)