将大型 Apache 日志文件拆分为过去一天

将大型 Apache 日志文件拆分为过去一天

我有一个 3GB 的日志文件,我需要提取过去 48 小时的内容,但又不想下载整个 3GB 文件。我怎样才能将文件拆分为过去 48 小时的内容?这样我只能下载单个文件?

我有完全的 SSH 访问权限,并且能够安装其他工具。

答案1

假设你有访问日志文件的服务器的 shell 权限,请尝试

egrep '2[789]/Sep/2011' logfile.big > /tmp/logfile.small

这将返回到 27 日的开始,大约需要 48 小时,但我希望它比整个文件小得多,而且速度很快。在传输结果文件之前,不要忘记对其进行 gzip 压缩,这样可以进一步加快速度。

答案2

您可以使用 Apache 日志解析器 -模拟。由于是用 C 语言编写的,因此运行速度很快。Analog 允许使用命令行选项 +F 和 +T 指定时间范围,这两个选项在逻辑上代表“FROM”和“TO”。

相关内容