如何找到按位置和大小列出的最大“error_log”文件?

如何找到按位置和大小列出的最大“error_log”文件?

我托管了大约 200 个网站,我注意到有些网站有巨大的 error_log 文件。

我想看看哪些占用了最多的空间,这样我就可以查看它们并解决错误,这样它们的大小就不再增长得那么快。

如何找到按位置和大小列出的最大“error_log”文件?

答案1

你尝试过这样的事情吗?

ls -lsR /var/log | sort -n | tail

这是否有效将取决于日志目录的结构和文件的名称。该命令只会告诉您最大的十个文件的文件名,而不是目录路径。

另一种选择是这样的,它查找所有大小超过 1GB 的文件并打印它们的完整路径:

find /var/log -size +1G -exec ls -lh {} +

只需将大小调整为略小于最大的日志文件即可。

万一您不知道这些error_log文件在哪里(根据您的其他问题判断,可能是这种情况),您可以使用locate error_logfind / -name error_log查找它们。您甚至可以将-name error_log参数添加到上述find命令中。

答案2

您可以使用该命令查看目录中所有文件的列表以及更深层次的文件du

它的用法的一个例子是

# du -h
46K     ./R/win-library/3.0/colorspace/data
236K    ./R/win-library/3.0/colorspace/doc
63K     ./R/win-library/3.0/colorspace/help
12K     ./R/win-library/3.0/colorspace/html
61K     ./R/win-library/3.0/colorspace/libs/i386
57K     ./R/win-library/3.0/colorspace/libs/x64
118K    ./R/win-library/3.0/colorspace/libs
16K     ./R/win-library/3.0/colorspace/Meta
# ....

答案3

我参加这里的聚会迟到了,但每个人都错过了这个“我托管大约 200 个网站..”

你的问题表明你正在寻找 error_log 文件,我认为它是指 php 错误日志。您最好的选择是使用 find 并根据您的系统以及 Web 根目录所在的位置,它应该看起来像这样

find . -type f -name "error_log" -ls | sort -nr -k7

如果您发现一些非常大的错误日志,建议查看它们,因为它们可能充满了相对容易纠正的 php 警告,这会显着减小文件大小。 (来源:虚拟主机系统管理员)

答案4

假设这些error_log文件位于以下某个位置/var/log并且您正在使用zshshell,以下命令将列出这些文件中最大的 10 个文件的路径名:

printf '%s\n' /var/log/**/error_log(.OL[1,10])

glob 限定符(.OL[1,10])将确保只有常规文件与模式 ( .) 匹配,并且结果按大小降序排列 ( OL)。最终[1,10]请求 glob 的前十个结果。

相关内容