在服务器上CentOS 7中,我在门户网站192.168.1.101:3260(ip是ips的其中一个)上启用了一个iscsi目标,以便从另一个服务器BI可以成功地在服务器A上挂载该iscsi目标。 从服务器B和服务器AI都可以成功执行telnet 192.168.1.101 3260 。 但是,在服务器上lsof -i -P |grep 3260什么都不显示! Selinux已启用,但禁用它并没有任何区别。 服务器A上configuration了多个接口,可能是这个原因? 如何查看lsof中的工作端口? 编辑:所有的命令都运行在根帐户。
我在运行Mac OS X 10.5的机器上列出了一个进程(守护进程)的打开文件: >lsof -p 89 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME … xxxxx 89 xxxxxxxx 9u unix 0x34f8990 0t0 ->0x34f8880 我想find一种方法来打开这个套接字并写入它。 (这是我这次的痴迷..) 如何find基础文件的i-node /名称以达到该套接字? 有没有办法来解决这个地址0x34f888从shell脚本? 如果不是这样,如何编程? 作为一个评论,我已经启动了netstat命令并得到这个结果: > netstat -u Active LOCAL (UNIX) domain sockets Address Type Recv-Q Send-Q Inode Conn Refs Nextref Addr … 34f8990 stream 0 0 0 […]
在几个端口上侦听的盒子上有很多进程。 我正在尝试将端口映射到pid。 问题是lsof没有告诉我哪个端口属于哪个进程。 鉴于apache监听端口80,我可以看到它通过netstat监听: user@host% netstat -an|grep LISTEN|grep 80 *.80 *.* 0 0 49152 0 LISTEN 但是当我试图将80端口映射到一个pid时,我什么也得不到: user@host% lsof -iTCP:80 -t 当我尝试看到特定的pid使用什么套接字我得到: user@host% lsof -lnP -p31 -a -i COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME libhttpd. 31 0 15u IPv4 0x6002d970b80 0t0 TCP *:65535 (LISTEN) 注意NAME列中的*:65535。 有谁知道为什么lsof不报告使用的端口? 我以root身份运行。 我正在使用lsof和os版本的组合: Solaris 10 sparc上的lsof v4.77 […]
在一个标准的安全扫描期间,我们发现有一些东西在听我们2030年未知的一个端口,我们在确定源头时遇到了麻烦。 # netstat -anp | grep LIST tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN – …. tcp 0 0 0.0.0.0:2030 0.0.0.0:* LISTEN – 两者都没有“过程”。 连接到它没有得到任何信息(input后断开连接,很可能是因为没有遵循预期的协议), lsof -i :2030也没有任何信息。 只是为了确保我复制了一个新的lsof二进制文件,但是我不确定它调用了多less额外的,可能已经妥协的库文件。 2049我知道,这是来自nfs-kernel-server,其行为方式相同(没有来自netstat或lsof的进程信息)。 瞧,在Debian框中重新启动nfs-kernel-server后,听2030的进程消失了…. 所以,我的问题是: 我应该担心一个妥协的盒子,或者这是一个真正的NFS核心服务器问题? 如果这是一个nfs-kernel-server的问题,到底发生了什么,为什么lsof不能显示这个信息呢? 。 Linux 2.6.39-2-686-pae nfs-kernel-server 1:1.2.3-3 lsof 4.81.dfsg.1-1
美好的一天。 最近我的VPS服务器(CentOS上)开始挤压“系统中打开的文件太多”的错误。 我读了很多错误,并知道限制是由我的托pipe服务提供商设置的。 我收到主机提供商的限制列表,他们说这个限制是12000个文件。 我试图用lsof实用程序来寻找这个问题。 当问题发生时,我设法find了lsof stat的响应: [root@XXXXXXXX]# lsof | wc -l 3895 有时达到4300左右,但我从来没有看到它跳得更高。 问题是这样的: lsof实用程序可以显示不完整的结果,还是主机的问题? 如果它比我可以用来获得最大的数字准确性还好。
我为nagios创build了一个简单的脚本来检查远程服务器上的端口。 本来我试图用lsof 。 #!/bin/bash RESULT=$(lsof -i :8080 | grep LISTEN) if [ -n "$RESULT" ] then echo "$RESULT" exit 0 else echo "Check application port is down" exit 2 fi 在本地机器上,nagios用户可以运行并执行脚本并获得预期的输出。 但远程使用check_nrpe ,我总是得到其他的回声 Check application port is down 即使正如我所说的在本地运行脚本,它正常工作 nrpe用户拥有执行该脚本所需的所有权限,SELinux处于宽容模式,但是我永远无法使其工作。 所以我改变了RESULT行来使用netstat 。 RESULT=$(netstat -anp | grep ":8080" | grep LISTEN) 然后我可以使用check_nrpe远程获得预期的响应。 所以我认为这是check_nrpe和lsof的问题。 但我永远无法在日志中find任何东西。 任何人有任何想法或build议,以使这与lsof正确工作?
lsof将显示一个表,第一列是命令名,每一行是一个打开的文件。 所以为了只显示特定命令的行,说“java”,这是有道理的,试试lsof | grep ^java lsof | grep ^java 。 这工作,但我知道lsof有它自己的标志来限制输出只有特定的命令 – -c 。 但是当我尝试使用lsof -c java ,输出是完全不同的。 -c方法只输出大约10行,而grep方法输出数千行。 所以我的问题是 – lsof -c滤除了什么? 既然这个问题得到了回应,我会详细说明。 问题的原因是grep方法lsof | grep ^java lsof | grep ^java理论上应该和lsof -c java输出一样。 我的推理是这样的 – lsof | grep ^java lsof | grep ^java将仅显示以字母“java”开头的行,并且lsof输出的每一行的开始是打开该文件的命令的名称。 lsof -c java应该只显示以字母“java”开头的命令打开的文件。 命令名称位于lsof输出的每一行的开头。 我不知道该怎么解释。 为了回答yoonix的评论,这是lsof man页面对-c标志所说的内容。 你应该先阅读它,然后才build议我读一下它的答案: -cc selects the […]
如何查看其他用户在目录中打开的文件列表? 我可以做“lsof + D”,但只显示当前用户的文件。 任何方式来看看其他用户是否已经打开目录中的文件?
如果我创build一个名为/home/martin/testfile.txt的文件,请使用较less的实用程序打开此文件,删除/home/martin/testfile.txt文件,并从/ proc / 31148下的文件描述符目录中恢复它,其中31148是实用程序的PID 较less ,则lsof | grep testfile.txt lsof | grep testfile.txt仍将lsof | grep testfile.txt显示为已删除: martin@potato:~$ echo test > testfile.txt martin@potato:~$ ls -li ~/testfile.txt 247 -rw-r–r– 1 martin martin 5 24. veebr 05:02 /home/martin/testfile.txt martin@potato:~$ xterm -hold -e "less /home/martin/testfile.txt" & [1] 31145 martin@potato:~$ lsof | grep testfile.txt less 31148 martin 4r REG 8,9 […]
我知道我可以使用lsof命令查看打开的端口列表。 我正在尝试通过听取时间戳来查看结果。 该进程打开多个(〜6)端口,我怀疑该端口上的初始化/绑定的顺序是一个错误的原因。 从技术上讲,应该可以通过查看在linux系统上创build的fd文件的创build时间戳来find绑定的相对时间戳。 我的查询是:有一个命令(netstat或lsof)已经这样做? PS:我不想通过审查日志的路线,因为有些港口是由外部jar子打开的,而这些外部jar子是我们无法控制的。