不解压tar.gz如何查看文件压缩前大小

chosen1cwp 2021年07月19日 269次浏览

业务场景回顾

服务器项目系统日志,因为超过磁盘预警大小,预警后就写了脚本来处理

具体处理逻辑:

每月月初,定时任务执行脚本,脚本逻辑是 压缩 上月所有日志文件到一个 压缩文件(上月月度压缩文件),scp 命令 传输压缩文件至日志存储服务器,然后删除上个月产生的所有日志文件

现在采购专用日志服务器,需要知道磁盘容量范围,所以需要统计历史日志大小,但是历史日志原文件早就删除

首先想到的就是 先解压,然后统计磁盘大小,算均值,但是太费劲。

是否可以不解压的情况下,来统计到日志压缩文件压缩前的大小呢?

当然是可以的,使用 tar tvf 命令

tar tvf zj.log.202103.tar.gz | awk '{print $3/1024/1024/1024, $6}'

命令解释

  1. 以GB格式显示大小
  2. $3 第三列 文件大小列
  3. $6 第六列 文件名列

demo