首页 > 解决方案 > 有没有办法列出打开的文件并按修改时间的升序对它们进行排序?

问题描述

Too Many Open Files即使当我关闭我正在打开的所有文件和连接以及将软硬限制设置为最大可用时,我也会遇到问题,即65535. 所以为了调试,我试图根据lsof时间重新排序输出。

标签: linuxbashlsof

解决方案


如果 strace/ltrace 过大,请考虑检查 /proc/PID/fd 文件夹。每个条目修改时间将显示创建 FD 的时间戳,实际上是打开/连接/接受时间:

# X_PID is the PID of the process to monitor/check
ls -lt --time-style=full-iso /proc/$X_PID/fd

样本输出

total 0
lrwx------ 1 owner owner 64 2019-10-16 16:25:14.359506339 +0300 0 -> /dev/pts/0
lrwx------ 1 owner owner 64 2019-10-16 16:25:14.359506339 +0300 1 -> /dev/pts/0
l-wx------ 1 owner owner 64 2019-10-16 16:25:32.183370423 +0300 11 -> /tmp/a
l-wx------ 1 owner owner 64 2019-10-16 16:26:47.862798157 +0300 15 -> /tmp/b
l-wx------ 1 owner owner 64 2019-10-16 16:26:47.862798157 +0300 16 -> /tmp/a
l-wx------ 1 owner owner 64 2019-10-16 16:27:20.918550476 +0300 17 -> /tmp/a
lrwx------ 1 owner owner 64 2019-10-16 16:25:14.359506339 +0300 2 -> /dev/pts/0
lrwx------ 1 owner owner 64 2019-10-16 16:25:14.359506339 +0300 255 -> /dev/pts/0

推荐阅读