标签: lsof

在 AIX 下,如何获取绑定到端口的程序的完整路径?

在 Linux 下,我可以使用netstat -tulpnwand ps,如下所示:

# netstat -tulpnw | grep :53
tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      1482/named          
udp        0      0 127.0.0.1:53                0.0.0.0:*                               1482/named          

# ps aux | fgrep 1482
named     1482  0.0  1.0  93656 44900 ?        Ssl  Sep06   3:17 /usr/sbin/named -u named
root     20221  0.0  0.0   4144   552 pts/0    R+   21:09   0:00 fgrep --color=auto 1482
# 
Run Code Online (Sandbox Code Playgroud)

ksh在 AIX 6 中使用时,如何获取绑定到端口的程序的完整路径?

process aix lsof socket netstat

14
推荐指数
1
解决办法
2万
查看次数

如何正确调用 lsof 以检索所有 TCP 连接?

# lsof -n -itcp | wc
     92     919   10212

# lsof -n | grep TCP | wc
   2482   27222  373861
Run Code Online (Sandbox Code Playgroud)

我做错了lsof -itcp什么?这种调用是跳过部分连接,看起来这是线程的连接。

lsof tcp

14
推荐指数
2
解决办法
2万
查看次数

lsof -p PID 与 lsof | grep PID

我不明白 lsof 命令的输出。

当我写

lsof -p PID
Run Code Online (Sandbox Code Playgroud)

我得到 4 行,当我写

lsof | grep PID
Run Code Online (Sandbox Code Playgroud)

我得到数百行。

它不应该返回相同的结果吗?

谢谢你的回复。这里是输出。看起来是子流程还是这个任务是什么意思?

lsof -p 29076
COMMAND   PID  USER   FD      TYPE DEVICE SIZE/OFF NODE NAME
java    29076  pr    cwd   unknown                      /proc/29076/cwd (readlink: Permission denied)
java    29076  pr    rtd   unknown                      /proc/29076/root (readlink: Permission denied)
java    29076  pr    txt   unknown                      /proc/29076/exe (readlink: Permission denied)
java    29076  pr   NOFD                                /proc/29076/fd (opendir: Permission denied)

lsof |grep 29076|head -20
java      29076        pr  cwd   unknown                          /proc/29076/cwd (readlink: Permission denied)
java      29076        pr …
Run Code Online (Sandbox Code Playgroud)

process lsof

13
推荐指数
1
解决办法
4万
查看次数

软件包升级后无法重新挂载/恢复为只读

我正在使用 Debian Stretch。我的根分区已挂载read-only。只有当我安装或升级包时,才会/重新挂载到read-write(通过使用 apt 钩子),然后重新挂载回ro.

有时在软件包升级后,我无法重新安装/为只读:

mount -o remount,ro /
mount: / is busy
Run Code Online (Sandbox Code Playgroud)

在较旧的 Debian 版本 (Wheezy) 上,我可以列出已取消链接的打开文件lsof

 lsof +L1
Run Code Online (Sandbox Code Playgroud)

或者,更具体地说,阻止/重新挂载回 ro 的文件:

{ lsof +L1 ; lsof|sed -n '/SYSV/d; /DEL|(path /p;' ; } | grep -Ev '/(dev|home|tmp|var)'
Run Code Online (Sandbox Code Playgroud)

但是,在 Debian Stretch 上,lsof +L1不会列出任何文件。

我没有看到任何改变+|-Lman lsof这可以解释为什么它停止工作。

为什么 lsof +L1 不再列出已取消链接的打开文件?

如何列出那些阻止 / 重新挂载为只读的文件?

更新

我已经停止了所有可以停止的进程,并且只有init并且getty仍在运行,但我仍然无法重新挂载/ …

debian apt lsof files readonly

13
推荐指数
1
解决办法
1140
查看次数

移动文件,但前提是它已关闭

我想在外部进程关闭后立即移动它创建的大文件。

这个测试命令正确吗?

if lsof "/file/name"
then
        # file is open, don't touch it!
else
        if [ 1 -eq $? ]
        then
                # file is closed
                mv /file/name /other/file/name
        else
                # lsof failed for some other reason
        fi
fi
Run Code Online (Sandbox Code Playgroud)

编辑:该文件代表一个数据集,我必须等到它完成才能移动它,以便另一个程序可以对其进行操作。这就是为什么我需要知道外部进程是否完成了文件。

linux monitoring shell-script lsof open-files

10
推荐指数
1
解决办法
2万
查看次数

是否可以使用“lsof -nP -i4UDP”输出完整的命令名称?

是否可以使用 输出完整的命令名称lsof -nP -i4UDP

我一直在手册中寻找合适的选项,例如-V(见下文),但它不会产生全COMMAND名,即systemd-resolve显示为systemd-r

$ sudo lsof -V -nP -i4UDP
COMMAND    PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
avahi-dae  437           avahi   12u  IPv4  12982      0t0  UDP *:5353 
avahi-dae  437           avahi   14u  IPv4  12984      0t0  UDP *:45006 
cups-brow  449            root    7u  IPv4  12149      0t0  UDP *:631 
systemd-r  485 systemd-resolve   12u  IPv4  14694      0t0  UDP 127.0.0.53:53 
systemd-r  485 systemd-resolve   13u  IPv4  14695      0t0  UDP *:5355 
dhclient   629            root    6u  IPv4 …
Run Code Online (Sandbox Code Playgroud)

lsof files

10
推荐指数
1
解决办法
4062
查看次数

lsof 的更快替代品

我想提取某个进程的进程 ID 以将其关闭。该进程是使用某个端口(localhost:3000)的本地Web服务器,我目前正在这样做以提取相关行:

lsof|grep localhost:3000
Run Code Online (Sandbox Code Playgroud)

但是lsof命令太慢了。有没有更快的方法来提取进程ID?

lsof tcp

9
推荐指数
2
解决办法
5544
查看次数

FreeBSD 10 跟踪磁盘活动

有什么方法可以在 FreeBSD 10 上使用 ZFS 找到一些定期写入磁盘(根据 hdd led)的进程(也许将 ZFS 转换为详细日志记录模式)?

lsof 由于磁盘访问时间很短,其他即时聚合统计实用程序似乎无法捕获任何内容。

freebsd zfs lsof trace disk

9
推荐指数
2
解决办法
5689
查看次数

如何在 lsof 中显示“人类可读”的大小 | grep /var*

我目前正在尝试查看所有使用 /var mount 的文件。

随着lsof | grep /var*当它以字节为单位显示大小。如何以 MB 为单位显示文件大小。

谢谢你。

command-line bash terminal shell-script lsof

9
推荐指数
3
解决办法
3万
查看次数

如何从lsof -i的结果中找出命令的完整路径

lsof 是一个很棒的实用程序,现在才开始使用它。

lsof -i | grep smtp => 这给出了以下结果。

httpd.pl  212548          global    3u  IPv4 893092369      0t0  TCP server07.host...blah...
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,httpd.pl是 perl 脚本,它发送垃圾邮件。

我怎么知道命令的完整路径。即在上面的结果中,我想知道的完整路径httpd.pl

我尝试在主目录中搜索,该文件httpd.pl不存在。而且,我尝试过lsof -p PID,这也没有给出它的路径。

有什么办法,我可以得到那个文件的完整路径吗?

注意:这种问题在共享主机环境中很常见。因此,它对于共享主机或任何 Web 服务器管理员都非常有用。

process smtp lsof files

8
推荐指数
1
解决办法
1万
查看次数