Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 有没有办法列出打开的文件并按时间的升序排列?_Linux_Bash_Lsof - Fatal编程技术网

Linux 有没有办法列出打开的文件并按时间的升序排列?

Linux 有没有办法列出打开的文件并按时间的升序排列?,linux,bash,lsof,Linux,Bash,Lsof,即使我关闭所有打开的文件和连接,并且将软限制和硬限制设置为“最大可用”(即65535)时,我也会遇到打开的文件太多的问题。 因此,为了调试,我试图在时间上对 LSOF 的输出进行重新排序。 < P>如果您可以控制启动命令,请考虑使用Strue/LTrace。它可以显示打开/关闭的每个文件 # When using ltrace, specify stdlib functions to monitor ltrace -e open+close YOUR_COMMAND_HERE OR # Mode

即使我关闭所有打开的文件和连接,并且将软限制和硬限制设置为“最大可用”(即
65535
)时,我也会遇到
打开的文件太多的问题。

因此,为了调试,我试图在时间上对<代码> LSOF 的输出进行重新排序。

< P>如果您可以控制启动命令,请考虑使用Strue/LTrace。它可以显示打开/关闭的每个文件

# When using ltrace, specify stdlib functions to monitor
ltrace -e open+close YOUR_COMMAND_HERE
OR
# Modern linux system will use openat system call to open a file
strace -e openat,close YOUR_COMMAND_HERE
您还可以将strace(和ltrace)附加到正在运行的进程(请参阅手册页)


如果您知道您有未关闭(网络)连接(而不是文件),请考虑扩展/替换过滤器以集中在接受(入站连接)上,根据需要连接(出站连接)。

< P>如果您可以控制启动命令,请考虑使用Strue/LC迹。它可以显示打开/关闭的每个文件

# When using ltrace, specify stdlib functions to monitor
ltrace -e open+close YOUR_COMMAND_HERE
OR
# Modern linux system will use openat system call to open a file
strace -e openat,close YOUR_COMMAND_HERE
您还可以将strace(和ltrace)附加到正在运行的进程(请参阅手册页)


如果您知道您有未关闭(网络)连接(而不是文件),请考虑将扩展/替换过滤器集中在接受(入站连接)上,根据需要连接(出站连接)。

< P>如果Strue/LCurry被过度使用,请考虑检查/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

如果Strue/LCurry过多,请考虑检查/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

默认情况下,PID按升序排列的lsof命令。现在,您必须知道排序PID或时间是相同的。由PID排序的lsof命令默认为升序。现在您必须知道排序PID或时间是相同的。是时间戳修改时间还是创建时间?@umarr-在我的系统上是“打开”时间。是时间戳修改时间还是创建时间?@umarr-在我的系统上是“打开”时间。