软件吧
登录注册账号
/posts/tar-gz-zip
电脑必备

服务器日志包解压卡了半小时,最后发现是tar.gz套了层zip

码农小张 74 0 13

上周排查线上问题,运维甩过来一个 8G 的日志包,说是 app-logs-20240612.tar.gz。我随手 tar -xzf 解压,结果卡了快半小时还没出来,当时就感觉不对。

先说环境:CentOS 7.9,内核 3.10,SSD 盘,tar 版本 1.26,7z 版本 16.02。同一台机器上我对比过,正常 8G 的 tar.gz 解压大概 3 到 4 分钟,这次直接干到 28 分钟还没完。

排查过程:

  1. 先 file 看了一眼,结果显示 Zip archive data。好家伙,后缀是 tar.gz,实际是个 zip。
  2. 用 unzip -l 列目录,里面还真套了一层 tar.gz,等于压缩率叠了两道。
  3. 换成 7z x 解外层,再 tar -xzf 解内层,总耗时 9 分 12 秒。

数据对账:

方式耗时备注
直接 tar -xzf28min+ 未完成后缀骗人,tar 反复读
7z 解外层 + tar 解内层9min12s两步都走对了
7z 一步解到底11min05s7z 能自动识别嵌套

结论:

  • 别信后缀,先 file 或者 7z l 看一眼格式,这步只要两秒。
  • 7-Zip 的命令行对嵌套压缩包识别确实省事,7z x 一把梭。
  • 如果是日常给同事解压,Win解压缩 点两下就行,速度也快,但批量脚本里我还是用 7z。
  • 日志包这种场景,解压前先 ls -lh 看大小,异常大就多留个心眼。

你们有没有遇到过后缀和实际格式对不上的包?一般是怎么快速判断的?

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。