linux 命令补充:lsof命令、iftop命令、watch工具、tc工具
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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退出监控。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 用以显示符合条件的进程情况
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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拷贝到该目录下面的速度
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
linux流控 tc工具 https://blog.csdn.net/hexf9632/article/details/118568933 Linux 下 TC 命令原理及详解<一>
https://www.jianshu.com/p/73bef05b46ca
tc -s qdisc ls dev eth0
#查看现有的队列
tc -s class ls dev eth0
#查看现有的分类