在日常运维和故障排查中,access.log这类日志文件往往会增长到几个G甚至更大。直接粗暴地查看这类文件极易引发性能问题或操作失误。这篇将围绕access.log这一典型场景,梳理查看大日志文件的常见踩坑点。
1. cat命令查看大文件
cat access.log
上述命令会一次性把几G内容全部输出到终端,直接刷屏卡死,磁盘IO瞬间拉满正确做法:使用less或more替代cat
2. 用vim等编辑器打开大文件
vim access.log
vim等编辑器会将全文件加载到内存,上述命令执行后会使得系统卡顿,内存使用率升高正确做法:使用less或more替代vim
3. grep不加限制直接搜索大文件
grep 200 access.log
上述命令执行后终端瞬间被刷屏,无法阅读
正确做法:grep执行时添加限制条件,如 grep 200 access.log | less
4. 处理压缩日志时先手动解压
gzip -d access.log.gz less access.log
解压后文件可能占据大量磁盘空间
正确做法:用压缩日志专用查看工具,免解压直接处理
- •
.gz文件:zless access.log.gz(分页查看,支持搜索) - •
.bz2文件:bzless access.log.bz2 - •
.xz文件:xzless access.log.xz
5. less打开大文件缓慢
less access.log
日志加载缓慢
正确做法:
(1) grep过滤后再查看
grep 'error' |less
(2) 查看最后一万行日志
tail -10000 | less
(3) 分割文件:split -l 100000 huge.log part_(按10万行分割为多个小文件再进行查看)(4) 使用sed分隔出指定时间段的日志进行查看