电脑必备
服务器日志包解压卡了半小时,最后发现是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 分钟还没完。
排查过程:
- 先
file看了一眼,结果显示Zip archive data。好家伙,后缀是 tar.gz,实际是个 zip。 - 用
unzip -l列目录,里面还真套了一层 tar.gz,等于压缩率叠了两道。 - 换成
7z x解外层,再tar -xzf解内层,总耗时 9 分 12 秒。
数据对账:
| 方式 | 耗时 | 备注 |
|---|---|---|
| 直接 tar -xzf | 28min+ 未完成 | 后缀骗人,tar 反复读 |
| 7z 解外层 + tar 解内层 | 9min12s | 两步都走对了 |
| 7z 一步解到底 | 11min05s | 7z 能自动识别嵌套 |
结论:
- 别信后缀,先
file或者7z l看一眼格式,这步只要两秒。 - 7-Zip 的命令行对嵌套压缩包识别确实省事,
7z x一把梭。 - 如果是日常给同事解压,Win解压缩 点两下就行,速度也快,但批量脚本里我还是用 7z。
- 日志包这种场景,解压前先
ls -lh看大小,异常大就多留个心眼。
你们有没有遇到过后缀和实际格式对不上的包?一般是怎么快速判断的?
登录后可以为帖子点赞,但本帖内容对所有人开放阅读。
