我托管了大约 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_log
或find / -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
并且您正在使用zsh
shell,以下命令将列出这些文件中最大的 10 个文件的路径名:
printf '%s\n' /var/log/**/error_log(.OL[1,10])
glob 限定符(.OL[1,10])
将确保只有常规文件与模式 ( .
) 匹配,并且结果按大小降序排列 ( OL
)。最终[1,10]
请求 glob 的前十个结果。