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 <arnouten@bzzt.net>.
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