Articles of lsof

让lsof显示更长的fd长度

当我检查一个可以使用超过10000个文件描述符的进程时,lsof只显示4位数。 (也就是只能显示9999) 超过10000时,以星号开头。 例如: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME a.out 29944 root 9995u IPv6 846704101 0t0 TCP 192.168.1.1:rtsp->192.168.1.2:50609 (ESTABLISHED) a.out 29944 root 9996u IPv6 846706748 0t0 TCP 192.168.1.1:rtsp->192.168.1.3:50634 (ESTABLISHED) a.out 29944 root 9997u IPv6 846708259 0t0 TCP 192.168.1.1:rtsp->192.168.1.4:50657 (ESTABLISHED) a.out 29944 root *000u IPv6 846710907 0t0 TCP 192.168.1.1:rtsp->192.168.1.5:50682 (ESTABLISHED) a.out 29944 […]

lsof显示tmp文件被标记为已删除

我有一个cron产生了很多(15GB)的PHP警告,并将它们写入日志文件。 我杀了这个进程,作为一个临时的措施,我停止了redirectstderr到stdout,所以我没有填满我的存储空间。 更改后,我继续收到相同的“高IO”警告,服务器存储暂时增加,然后恢复到原来的大小。原始日志文件为空。 我find了一个使用lsof -p <PID of cron> ,第二个文件变大了。 sh 25626 root 10u REG 202,1 21280244045 773 /tmp/tmpfZ14vFH (deleted) 这个文件被标记为已删除,我无法在/ tmp目录中find它。 请提供一些有关这方面的见解。 进程运行时,操作系统是否将stderr写入tempprary文件?

清除已删除的内存映射文件更快?

我们使用Tika进行PDF文本内容提取以进行search。 我看到大量临时文件,似乎现在运行我们的文件句柄。 我们在CentOS 5.5上。 对于我们的search系统,我们以前碰到了打开的文件句柄(/etc/sysctl.conf)fs.file-max = 65535 在我的进程中查看lsof时,我看到很多标记为DEL的文件(删除的内存映射文件)。 如果我停止提交要索引的新文件,这些文件将在几分钟后清除。 java 11105 root DEL REG 104,2 1278402 /tmp/+~JF4155000471009101661.tmp 我可以调整内核以更快地清除这些DEL文件,或者我应该增加文件句柄的数量吗? 如果是这样,我们可以安全地走多高? 我有足够的内存可以给更多的内核。 谢谢 大卫

KVM如何确定哪些虚拟磁盘文件正在被虚拟机使用

我尝试了lsof|grep *.qcow2并没有得到任何结果(为什么?我肯定有虚拟机使用该磁盘格式运行)。 我也考虑grep qcow2在configuration目录中的* .xml,但是这不会告诉我哪些在使用必然。 有没有简单的方法来确定哪些磁盘映像正在使用以及哪些域/虚拟机? 另外,因为lsof似乎没有做我想要的,所以你用什么方法来确定哪个文件被哪个进程访问? 使用libvirt / kvm / qemu virsh 0.10.2运行Cent 6.3 编辑:看到我的评论,这是grep那是我失败,而不是lsof ..怎么回事,我需要启用扩展正则expression式匹配“* .qcow2”?

监视cgi-bin可执行文件的使用情况?

我的cgi-bin文件夹中的程序之一是行为不当。 这是一个编译的二进制文件,我没有源代码。 我想设置某种监视器来收集程序在执行时打开的文件列表,并将其转储到文本文件中。 它看起来像lsof可能有这样的信息,但由于CGI程序是暂时的,通常在一秒钟内完成执行,从命令行同时运行lsof是不实际的。 对于这个问题,我甚至不确定CGI程序是否会显示为自身,或者是否将该活动注册到httpd进程。 服务器运行Apache 2.2.15的红帽企业版Linux 6.4,我有root权限。 build议?

如何将lsof stat和ps结合起来,在一行bash命令中获得更多的信息

我可以使用lsof来获取顶级打开文件统计进程,如下所示: $ lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr | head -n 5 17955 11945 10282 2786 5980 32152 1920 27803 1786 32107 现在我想用一行bash命令来扩展结果如下, $ lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr | head -n 5 … 17955 11945 java 10282 2786 python 5980 32152 ruby 1920 27803 go 1786 32107 rust 我怎样才能做到这一点?

日志文件丢失,我怎么能看到,发生了什么事

由进程ID 2147标识的进程正在运行,但其日志文件无处可查。 文件系统是ext3和100MB的空间。 在进程2147中没有出错。进程2147的一个显示日志文件仍然是打开的。 一个。 可能发生什么使日志文件消失? 湾 你可以访问文件的内容? 如果是这样,怎么样?

lsof是由root用户运行的,而不是由用户运行并且CPU使用率很高

我的服务器正在使用来自lsof的高CPU使用率,它似乎是随机运行的,并被root用户运行。 我通过Newrelic信息find了这个 是否可以find正在运行的程序并停止它? 额外的信息:我正在使用和已经安装的一些主要的应用程序: 新的遗物 PHP APACHE2.2 韵律学 后缀 MySQL的 当我执行一个ps -feww | grep lsof它总是只返回grep命令本身,它看起来似乎永远不会运行。

如何杀死/closures通过lsof grep打开的日志文件被删除?

我从我们的服务器中删除了一个大的日志文件。 所以我执行这个命令来validation。 lsof -nP | grep '(deleted)' 这显示出来了。 我怎样才能永久删除这个lsof的结果? 我需要在我们的硬盘上找回需要的空间

如何在AIX中安装LSOF

我想在AIX中安装LSOF。 我从https://www14.software.ibm.com/webapp/iwm/web/reg/pick.do?source=aixbp&lang=en_US下载了该程序。 解压tar文件后,我没有得到自述文件或安装指南文件。 这是我第一次使用Unix操作系统,你能帮我解决我的问题吗?