lsof

linux 如何查看服务和端口

你说的曾经没有我的故事 提交于 2020-03-22 03:00:54
问:我该如何发现哪种服务正在某个特定端口上监听呢?我如何发现哪一个程序正在一个特定端口上监听呢?   答:在*NIX系统中,你可以使用下面的任何一个命令来得到在一个特定TCP端口上监听的列表。   Lsof:其功能是列示打开的文件,包括监听端口。   netstat :此命令象征性地展示各种与网络有关的数据和信息的内容。    Lsof命令示例   你可以输入下面的命令来查看IPv4端口:   # lsof -Pnl +M -i4   你可以输入下面的命令来查看IPv6 协议 下的端口列示:   # lsof -Pnl +M -i6    此例输出: 这里我们不妨解释一 下。第一栏是command,它给出了程序名称的有关信息。请注意标题的细节。例如,第二行的gweather* 命令从美国 NWS 服务器 (140.90.128.70)获取天气的报告信息,包括交互天气信息网络和其它的天气服务。在这里,我们解释一下命令各个参数。   1. -P :这个选项约束着网络文件的端口号到端口名称的转换。约束转换可以使lsof运行得更快一些。在端口名称的查找不能奏效时,这是很有用的。   2. -n : 这个选项约束着网络文件的端口号到主机名称的转换。约束转换可以使lsof的运行更快一些。在主机名称的查找不能奏效时,它非常有用。   3. -l :这个选项约束着用户ID号到登录名的转换

根据端口号查进程

爱⌒轻易说出口 提交于 2020-03-22 03:00:28
netstat -lnp |grep 3312 /usr/sbin/lsof -Pnl +M -i4 | grep 3312 lsof命令参数解释   1) -P :这个选项约束着网络文件的端口号到端口名称的转换。约束转换可以使lsof运行得更快一些。在端口名称的查找不能奏效时,这是很有用的。   2) -n : 这个选项约束着网络文件的端口号到主机名称的转换。约束转换可以使lsof的运行更快一些。在主机名称的查找不能奏效时,它非常有用。   3) -l :这个选项约束着用户ID号到登录名的转换。在登录名的查找不正确或很慢时,这个选项就很有用。   4) +M :此选项支持本地TCP和UDP端口映射程序的注册报告。   5) -i4 :仅列示IPv4协议下的端口。   6) -i6 : 仅列示IPv6协议下的端口。 来源: https://www.cnblogs.com/gaohuag/archive/2013/03/18/2965926.html

Linux磁盘空间被占用问题

久未见 提交于 2020-03-19 13:41:38
3 月,跳不动了?>>> 最近遇到一个非常诡异的Linux磁盘空间被占用的问题,莫名其妙的磁盘满了,使用在根目录du -h命令查看却只占用到12%左右 可直接使用df -h命令查看却显示磁盘已经100%use了,如下图: 实在匪夷所思,后来找到问题是因为之前执行rm -rf删除操作的进程没有正常结束掉,导致虽然文件看着是被删除了(看不到了),但是那个进程还占用着,系统磁盘空间实际上没有被 释放,只是将文件标记为deleted状态,类似windows下的回收站状态。使用du查看时,因为没有该删除状态文件的节点信息,所以就不做统计,从而导致与df的结果不一致。 要解决这个问题只需要将deleted状态文件删除,则根据pid直接kill调相应进程即可。 使用losf命令列出deleted状态的进程号 lsof |grep delete 然后使用kill -9命令删除进程号即可,即上图的第二列,这样状态的文件可能会很多,如何快速删除呢?不要慌有办法的,使用以下命令即可 lsof |grep delete|grep -v grep|cut -c 9-15| xargs kill -9 清理完之后再使用df -h命令看看: 瞬间释放了84G出来,哈哈哈,开心~ 现在和du -h看到的一致了 说明 列出了当前主机中运行的进程中delete状态的进程 lsof | grep delete |

Linux 查看端口占用情况

南楼画角 提交于 2020-03-08 11:33:18
Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。 lsof lsof(list open files)是一个列出当前系统打开文件的工具。 lsof 查看端口占用语法格式: lsof -i:端口号 实例 查看服务器 8000 端口的占用情况: lsof -i:8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nodejs 26993 root 10u IPv4 37999514 0t0 TCP *:8000 (LISTEN) 可以看到 8000 端口已经被轻 nodejs 服务占用。 lsof -i 需要 root 用户的权限来执行,如下图: 更多 lsof 的命令如下: lsof -i:8080:查看8080端口占用 lsof abc.txt:显示开启文件abc.txt的进程 lsof -c abc:显示abc进程现在打开的文件 lsof -c -p 1234:列出进程号为1234的进程所打开的文件 lsof -g gid:显示归属gid的进程情况 lsof +d /usr/local/:显示目录下被进程开启的文件 lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长 lsof -d 4:显示使用fd为4的进程 lsof -i -U:显示所有打开的端口和UNIX

【读书笔记】Linux命令行与Shell脚本编程大全--更多的bash shell命令

三世轮回 提交于 2020-02-28 14:47:41
文章目录 1.检测程序 1.1 探查进程-ps 1.2 实时监测进程-top 1.3 结束进程 2.检测磁盘空间 2.1 挂载存储媒介 2.2 使用df命令 2.3 使用du命令 3.处理数据文件 3.1 排序数据 3.2 搜索数据 3.3 压缩数据 3.4 归档数据 1.检测程序 1.1 探查进程-ps ps命令 能输出运行在系统上的所有程序的许多信息。 ps:默认情况下,ps命令只会显示 运行在当前控制台下的属于当前用户 的进程。 Linux系统中使用的GNU ps命令支持3种不同类型的命令行参数: Unix风格的参数,前面加单破折线 BSD风格的参数,前面不加破折线 GNU风格的参数,前面加双破折线 1.2 实时监测进程-top 借图分析如下: 输出的 第一部分 显示的是系统的概况:第一行显示了当前时间、系统的运行时间、登录的用户数以及系统的平均负载。 平均负载 有3个值:最近1分钟的、最近5分钟的和最近15分钟的平均负载。值越大说明系统的负载越高。由于进程短期的突发性活动,出现最近1分钟的高负载值也很常见,但如果近15分钟内的平均负载都很高,就说明系统可能有问题。 第二行 显示了进程概要信息——top命令的输出中将进程叫作任务(task):有多少进程处在运行、休眠、停止或是僵化状态(僵化状态是指进程完成了,但父进程没有响应)。 note:

exec()函数问题

懵懂的女人 提交于 2020-02-01 10:53:54
源代码: 在网上也搜索了答案 比较详细的答案是: <?php exec("lsof -i:80",$out,$status); 结果: var_dump($out); array(0) { } echo $status;值为127 2、通过:shell_exec("id -a");查看一下用户以及用户组 <?php echo shell_exec("id -a"); 结果:uid=1002(www) gid=1002(www) groups=1002(www) 3、登录Linux给www用户赋予root级别的权限试一试看 修改/etc/sudoers文件 root ALL=(ALL) ALL 下面增加一行 www ALL=(ALL) ALL 修改后执行php,结果没意义,返回的数组依然为空array(0) { } 4、修改权限没有效果,网上查询说exec第三个参数返回127可能还与路径有关系,那么从路径方面着手试一试 exec("whereis lsof", $out); var_dump($out); 结果: array(1) { [0]=> string(50) "lsof: /usr/sbin/lsof /usr/share/man/man8/lsof.8.gz" } lsof命令所在文件路径: /usr/sbin/lsof 所以把 exec("lsof -i:80",

linux lsof 详解

安稳与你 提交于 2020-01-23 22:31:43
lsof(list open files)是一个查看当前系统文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,该文件描述符提供了大量关于这个应用程序本身的信息。 【lsof可打开的文件】 普通文件 目录 网络文件系统的文件 字符或设备文件 (函数)共享库 管道,命名管道 符号链接 网络文件(例如:NFS file、网络socket,unix域名socket) 还有其它类型的文件,等等 【命令参数】 -a 列出打开文件存在的进程 -c program -g 列出GID号进程详情 -d <文件号> 列出占用该文件号的进程 +d<目录> 列出目录下被打开的文件 +D<目录> 递归列出目录下被打开的文件 -n<目录> 列出使用NFS的文件 -i <条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip ) -p<进程号> 列出指定进程号所打开的文件 -u username -h 显示帮助信息 -v 显示版本信息 【lsof输出各列信息】 COMMAND:进程的名称 PID:进程标识符 PPID:父进程标识符(需要指定-R参数) USER:进程所有者 PGID:进程所属组 FD:文件描述符

大厂面试中三次握手延伸出来n连发你受得了?

别说谁变了你拦得住时间么 提交于 2020-01-20 03:13:34
秋招面试也不记得多少家公司会有这个面试题。所以将其总结一下并分享给大家。 文章目录 一、这是一次有故事的对话 二、三次握手的客户端服务端状态 1 先画个图看看有哪些状态 2 tcp协议内容解析 3 通过工具wireshark来验证我们所述 三、说下Linux网络编程常用API 1 Linux网络编程常用API 2 粘包现象 四、再说说为啥不是两次握手或者四次握手? 五、最后聊一聊分析网络程序的工具 1 网络程序调试工具的思维导图 2 详解各个小工具 六 结尾 嘀嘀嘀。。。。一看广东,难道是腾讯的面试,哦原来是电话面试。那就开始吧! 一、这是一次有故事的对话 先说说三次握手的各个状态 二、三次握手的客户端服务端状态 1 先画个图看看有哪些状态 嗯?这些ack seq是干啥的呢,不急不急,我们先把tcp协议格式内容给整明白了。 2 tcp协议内容解析 小贱先把tcp的头部搬过来 然后我们来解析一下各个字段是什么意思 字段名 字段描述 16位端口号 告知主机该报文是来自哪里以及传给哪个上层协议或应用程序(目的端口)的。 32位序列号 一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号 32位确认号 用作对另一方发送来的TCP报文段的响应 4位头部长度 标识该TCP头部有多少个32bit字(4字节)。因为4位最大能表示15,所以TCP头部最长是60字节。

大厂面试中三次握手延伸出来n连发你受得了?

柔情痞子 提交于 2020-01-19 22:58:41
目录 一、这是一次有故事的对话 二、三次握手的客户端服务端状态 1 先画个图看看有哪些状态 2 tcp协议内容解析 3 通过工具wireshark来验证我们所述 三、说下Linux网络编程常用API 1 Linux网络编程常用API 2 粘包现象 四、再说说为啥不是两次握手或者四次握手? 五、最后聊一聊分析网络程序的工具 1 网络程序调试工具的思维导图 2 详解各个小工具 六 结尾 秋招面试也不记得多少家公司会有这个面试题。所以将其总结一下并分享给大家。 @ 嘀嘀嘀。。。。一看广东,难道是腾讯的面试,哦原来是电话面试。那就开始吧! 一、这是一次有故事的对话 先说说三次握手的各个状态 二、三次握手的客户端服务端状态 1 先画个图看看有哪些状态 嗯?这些ack seq是干啥的呢,不急不急,我们先把tcp协议格式内容给整明白了。 2 tcp协议内容解析 小贱先把tcp的头部搬过来 然后我们来解析一下各个字段是什么意思 字段名 字段描述 16位端口号 告知主机该报文是来自哪里以及传给哪个上层协议或应用程序(目的端口)的。 32位序列号 一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号 32位确认号 用作对另一方发送来的TCP报文段的响应 4位头部长度 标识该TCP头部有多少个32bit字(4字节)。因为4位最大能表示15,所以TCP头部最长是60字节。