当前位置: 首页 > article >正文

关于网络接口监测工具ifstat命令的功能详解以及Linux下lsof命令的使用详解

一、关于网络接口监测工具ifstat命令的应用

    ifstat工具是个网络接口监测工具,比较简单看网络流量,像VMSTAT那样一行行显示着浏览信息,可以设置显示某个或所有网卡流量数据。ifstat默认不监控回环接口,显示的流量单位是KB。系统默认未安装,使用apt install ifstat安装即可用。

    默认情况下,ifstat监测所有非环路网络接口的活动。其主要选项意义如下:

-l 监测环路网络接口(lo)。缺省ifstat监测活动的所有非环路网络接口。
-a 监测所有网络接口的状态信息
-z 隐藏无流量的接口,例如未使用的接口
-i 指定要监测的接口,后面跟网络接口名
-s 等于加-d snmp:[comm@][#]host[/nn]] 参数,通过SNMP查询一个远程主机
-h 显示简短的帮助信息
-n 关闭显示周期性出现的头部信息,跨屏显示时有作。不建议关
-t 在每一行的开头加一个时间戳(能告诉我们具体的时间)
-T 报告所有监测接口的全部带宽,最后一列有个total
-w 用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽
-W 如果内容比终端窗口的宽度还要宽就自动换行
-S 在同一行保持状态更新,不滚动不换行
-b 用kbits/s显示带宽而不是kbytes/s
-q 安静模式,警告信息不出现
-v 显示版本信息

二、Linux下 lsof 命令使用详解

        调试的时候通过查看进程或系统打开的文件能给调试带来极大的帮助,而lsof 命令能显示 Linux 系统当前已打开的所有文件列表。lsof (list open files)命令用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP),还可以用于找回/恢复被删除的文件。lsof 命令需要访问核心内存和各种文件,只有root权限用户才能执行此命令。

[test@server /] lsof
 lsof: command not found
[test@server /] yum install lsof -y
Installing:
lsof              x86_64              4.82-4.el6              base              319 k
[test@server /] # lsof -i 6
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd       824     root    4u  IPv6  23534      0t0  TCP *:ssh (LISTEN)

1. lsof命令的常用选项。

-a         #显示打开文件的进程
-i<条件>   #输出符合条件的进程
-c<进程名>  #显示指定进程所打开的文件
-p<进程号> #输出指定进程号所打开的文件
-g         #显示GID号进程详情
-d<文件号>  #显示占用该文件号的进程
+d<目录>   #显示目录下被打开的文件
+D<目录>   #递归列出目录下被打开的文件
-U   #获取UNIX套接口地址

2. 使用lsof命令能显示 Linux 系统当前已打开的所有文件列表。

lsof -i #显示所有连接
lsof -i 6 #只显示IPV6的连接
lsof -i 4 #只显示IPV4的连接
lsof -i tcp #仅显示TCP的连接
lsof -i udp #仅显示UDP的连接
lsof -i :80 #显示指定端口的连接
lsof -u root#列由显示某用户打开的进程或文件
lsof -i@192.168.64.47 #显示指定到指定主机的连接
lsof -i@192.168.64.47:52762 #显示指定到指定主机端口的连

3. lsof输出各列信息的意义如下:

COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
PGID:进程所属组(需要指定-R参数)
FD:文件描述符

        FD表示文件描述符,有cwd,rtd,txt,mem等几种类型,cwd代表当前目录,rtd代表根目录,txt代表执行的程序,mem代表映射到内存的文件(一般都是动态链接库)。其它的0u代表的文件描述符为0,而255u代表的文件描述符为255,u的意思为可读可写。TYPE为文件类型,常见的文件类型(1)DIR:表示目录,(2)CHR:表示字符类型,(3)BLK:块设备类型,(4)UNIX: UNIX 域套接字,(5)FIFO:先进先出 (FIFO) 队列,(6)IPv4:网际协议套接字。

        如果说ps命令是横向并列查看各个进程列表的话,lsof命令可以认为是ps的补充,是查看进程的详情,是纵向查看一个进程运行时涉及到的各个程序、目录、文件、端口等详细信息。lsof命令可以非常方便地查找某个进程使用了哪些文件,包括执行文件、日志文件、程序文件路径等。比如有的进程在相对目录中启动后我们不能直观地看到它的执行路径,这时就可以使用lsof命令对这个进程进行跟踪,如果对于nginx进程,可以使用lsof -c nginx(进程名)查看所有nginx名的进程涉及的文件,要指定nginx,可以使用lsof -p 进程号 来查看。

        最后在知道了某些进程或者用户涉及了哪些文件之后,我们可以使用下面的命令来批量结束那些我们不需要或者非法的程序。命令如下:

[test@server /] # kill -9 `lsof -u nginx`


http://www.kler.cn/news/357514.html

相关文章:

  • 前端面试题(十八)
  • 进程的优先级
  • Linux 外设驱动 应用 2 KEY 按键实验
  • 【Android】MVP架构
  • Qt-界面优化控件样式设置(72)
  • k8s的部署和安装
  • java 根据word模板,实现数据动态插入,包括二维码图片插入,并合并多个word文档,最终转为pdf导出
  • Java Exercise
  • ELK中segemntmerge操作对写入性能的影响以及控制策略和优化方法
  • JavaWeb合集05-SpringBoot基础知识
  • 设计模式03-装饰模式(Java)
  • 机器学习与物理学的相遇:诺贝尔奖新篇章的启示
  • LabVIEW伺服压机是如何实现压力位移的精度?
  • C++中placement new的用法
  • 电子商务网站维护技巧:保持WordPress、主题和插件的更新
  • 客户案例 | Ansys与台积电和微软合作加速光子仿真
  • 使用函数制作一个简易的计算机
  • 生成 Excel 表列名称
  • 神经网络量化基础
  • C05.L01.插入与冒泡排序.冒泡排序