首页/安全/取证与溯源速查/压缩历史日志检索
Linux 取证135 条

压缩历史日志检索

轮转后的旧日志多以 .gz 或 .xz 保存,用 zgrep、xzgrep 可直接检索,必要时再用 zcat 管道交给 awk 统计。

取证与溯源速查安全更新于 2026-10-13

压缩归档日志的检索方式

轮转后的旧日志通常被压缩成 .gz 或 .xz,直接用 grep 检索只会得到二进制文件的匹配提示。gzip 体系提供 zgrep 与 zcat,xz 体系提供 xzgrep 与 xzcat,用法和普通 grep/cat 一致,可以直接在压缩文件上做关键字检索或管道统计,不必先解压占用额外磁盘空间。

跨文件统计要处理文件名前缀

对多个压缩文件执行 zgrep 时,命中行会带上文件名前缀,做行数统计或字段截取之前应当用 -h 抑制前缀,否则统计结果会混入文件名。另一个常见问题是不压缩与压缩文件混在一起搜索:通配符写法要覆盖两类文件,或者分开处理再合并结果。

基本信息

适用平台Linux(gzip 与 xz 套件)
gzip 体系zgrep、zcat、zless
xz 体系xzgrep、xzcat、xzless
常用选项-h 抑制文件名前缀、-c 只输出计数
适用场景跨天跨周的日志回溯与批量统计

典型使用场景

  • 跨周统计失败登录:对多份归档日志一次完成计数
  • 回溯某个地址的历史行为:在归档范围内检索该地址的全部记录
  • 管道统计:用 zcat 输出后交给 awk 做字段聚合
  • 确认历史是否仍存在:先确认归档文件存在,再决定分析范围
  • 为报告取证:注明命中的文件名与时间段,结论可追溯

压缩日志检索

压缩日志检索
# 统计多份归档日志中失败登录的次数(-h 抑制文件名前缀)
zgrep -h -c 'Failed password' /var/log/auth.log.*.gz

# 检索特定地址的全部记录,保留文件名以便注明来源
zgrep '203.0.113.9' /var/log/auth.log.*.gz | head -20

# 管道统计:按月统计接受登录的对象
zcat /var/log/auth.log.*.gz | grep 'Accepted' | awk '{print $NF}' | sort | uniq -c | sort -rn | head

# xz 压缩的历史文件改用对应命令
# xzgrep -c 'Failed password' /var/log/auth.log.*.xz

常见问题与处理

现象原因处理方式
提示二进制文件匹配直接对压缩文件用了 grep改用 zgrep 或先 zcat
统计结果异常偏大输出带文件名前缀被计入加 -h 抑制前缀
通配符没匹配到文件压缩格式不是 .gz确认实际扩展名,改用 xzgrep
跨天数据缺失归档已被轮转删除核对保留份数,说明边界
统计口径不一致部分文件加了 -h 部分没加统一选项后重跑
不同发行版与配置可能使用不同的压缩程序(gzip、bzip2、xz),用 ls 确认扩展名后再选对应命令,不要假定一定是 .gz。
检索结果要连同文件名与时间段记录在分析笔记中:报告里的每个数字都应当能回指到具体的文件与命令。

易错点

  • 对压缩文件直接用 grep:只能得到二进制匹配提示,看不出内容
  • 统计时未加 -h:文件名前缀被计入导致数字失真
  • 假定所有归档都是 .gz:遇到 xz 压缩的文件会整体漏掉
  • 只搜当前日志不搜归档:早期记录被排除,攻击起点可能被漏
  • 检索结果不注明来源文件:报告里的数字无法回溯核对

数据来源与参考

  • gzip 官方文档(zgrep、zcat)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌