linux 命令补充:lsof命令、iftop命令、watch工具、tc工具

 

iftop是类似于top的实时流量监控工具。
iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。


iftop界面相关说明
    界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。

    中间的<= =>这两个左右箭头,表示的是流量的方向。

    TX:发送流量
    RX:接收流量
    TOTAL:总流量
    Cumm:运行iftop到目前时间的总流量
    peak:流量峰值
    rates:分别表示过去 2s 10s 40s 的平均流量
    

常用示例:
    iftop -BP
    iftop -BPn
    iftop -i eth0


Synopsis: iftop -h | [-npblNBP] [-i interface] [-f filter code]
                               [-F net/mask] [-G net6/mask6]

常用的参数
    -i    设定监测的网卡,如:# iftop -i eth1
    -B    以bytes为单位显示流量(默认是bits),如:# iftop -B
    -n    使host信息默认直接都显示IP,如:# iftop -n
    -N    使端口信息默认直接都显示端口号,如: # iftop -N
    -F    显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
    -h    (display this message),帮助,显示参数信息
    -p    使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
    -b    使流量图形条默认就显示;
    -f    这个暂时还不太会用,过滤计算包用的;
    -P    使host信息及端口信息默认就都显示;
    -m    设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
    
进入iftop画面后的一些操作命令(注意大小写)
    按h切换是否显示帮助;
    按n切换显示本机的IP或主机名;
    按s切换是否显示本机的host信息;
    按d切换是否显示远端目标主机的host信息;
    按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
    按N切换显示端口号或端口服务名称;
    按S切换是否显示本机的端口信息;
    按D切换是否显示远端目标主机的端口信息;
    按p切换是否显示端口信息;
    按P切换暂停/继续显示;
    按b切换是否显示平均流量图形条;
    按B切换计算2秒或10秒或40秒内的平均流量;
    按T切换是否显示每个连接的总流量;
    按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
    按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
    按j或按k可以向上或向下滚动屏幕显示的连接记录;
    按1或2或3可以根据右侧显示的三列流量数据进行排序;
    按<根据左边的本机名或IP排序;
    按>根据远端目标主机的主机名或IP排序;
    按o切换是否固定只显示当前的连接;
    按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
    按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
    按q退出监控。
iftop

 

lsof是系统管理/安全的尤伯工具。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。
对于我,lsof替代了netstat和ps的全部工作。它可以带来那些工具所能带来的一切,而且要比那些工具多得多。


usage: [-?abhKlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s]
 [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]

lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

lsof  -i        #使用-i显示所有连接
lsof  -i 6        #使用-i 6仅获取IPv6流量
lsof  -iTCP        #仅显示TCP连接(同理可获得UDP连接)
lsof  -i :22    #使用-i:port来显示与指定端口相关的网络信息    
lsof  -i@172.16.12.5        #使用@host来显示指定到指定主机的连接
lsof  -i@172.16.12.5:22        #使用@host:port显示基于主机与端口的连接
lsof  -i -sTCP:LISTEN        #找出正等候连接的端口。
lsof  -i |  grep  -i LISTEN
lsof  -i -sTCP:ESTABLISHED    #找出已建立的连接
lsof  -i |  grep  -i ESTABLISHED

lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -c abc 显示abc进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程 www.2cto.com
lsof -i 用以显示符合条件的进程情况
lsof

 

watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。直接在 watch 后面接你想运行的命令,watch 就会帮你重复运行,并把每次的结果都更新在屏幕上。
默认watch会以2s的间隔重复运行命令,你也可以用 -n 参数指定时间间隔.
还有一个实用的参数是-d,这样watch会帮你高亮显示变化的区域,这样更加一目了然了
Ctrl+c 就可以退出
----------------------------------------------------
实例:
#watch uptime
#watch -t -d uptime
#watch -d -n 1 netstat -ntlp
#watch -d ’ls -l | fgrep goface’   //监测goface的文件
#watch -t -differences=cumulative uptime
#watch -n 60 from  //监控mail
#watch -n 1 ”df -i;df”  //监测磁盘inode和block数目变化情况
#watch -n 60 -d du -ah //查看usb3.0拷贝到该目录下面的速度
watch

 

linux流控 tc工具
https://blog.csdn.net/hexf9632/article/details/118568933

Linux 下 TC 命令原理及详解<一>
linux流控 tc工具

 https://www.jianshu.com/p/73bef05b46ca

tc -s qdisc ls dev eth0  #查看现有的队列
tc -s class ls dev eth0  #查看现有的分类
 
posted @ 2021-10-11 14:07  雲淡風輕333  阅读(133)  评论(0编辑  收藏  举报