使用AWK总结日志
在处理任何文件时,熟悉文件结构是首要任务。下面将介绍如何使用AWK处理不同类型的日志文件,包括Apache HTTPD日志和Postfix邮件日志。
1. HTTPD日志文件格式
在处理Apache HTTPD Web服务器的访问日志文件时,需要了解其文件结构。在基于Debian的系统中,默认的日志文件位置是 /var/log/apache2/access.log
,其他系统可能使用 httpd
目录代替 apache2
。
日志文件中的字段含义如下表所示:
| 字段 | 用途 |
| — | — |
| 1 | 客户端IP地址 |
| 2 | 由RFC 1413和ident客户端定义的客户端身份。除非启用 IdentityCheck
,否则不读取该字段。若未读取,值为连字符 |
| 3 | 若启用用户认证,则为用户ID。若未启用,值为连字符 |
| 4 | 请求的日期和时间,格式为 day-month-year(hour:minute:second)offset
|
| 5 | 实际请求和方法 |
| 6 | 返回状态码,如200或404 |
| 7 | 文件大小(字节) |
需要注意的是,日期、时间和时区是一个字段,用方括号括起来,且数据和时区之间有额外的空格。若需要打印完整的时间字段,需同时打印 $4
和 $5
,示例命令如下: