linux下tar命令压缩时是否需要额外更多缓存空间

  • A+
所属分类:日志

在某一台生产环境中,应用程序开启的日志级别比较高。每天产生的日志文件大小都在10-30G之间。按照30天的保存周期设置,将变得十分困难。考虑到日志文件的压缩比比较高,是否可以在每天日志分割后,将前一天的日志压缩并删除源文件。

提出问题


压缩文件将使用tar命令,在日志分区本身不大的情况下,执行这个命令压缩10-30G大小文件的时候,会不会产生额外的缓存文件占用呢?

问题分析


1,在测试服务器上,挂载一个15G的磁盘分区。并上传一个13G大小的日志文件。如果,在压缩过程中当前文件夹下产生了大量的缓存文件,该文件夹容量的变化将很明显。2,写一个小脚本来监控文件系统的变化,并将结果输出到一个文本中。

[root@test-fu ~]# cat test

#!/bin/bash

while true;do

gen=`df -h |grep -w '/' |awk '{print $4}'`

shm=`df -h |grep /dev/shm|awk '{print $5}'`

boot=`df -h |grep /boot|awk '{print $5}'`

data=`df -h |grep /data|awk '{print $4}'`

echo -e "$gen $shm $boot $data" >> test.txt

sleep 1

done

3,运行上面的脚本:sh test

4,使用tail -f text.txt来监控产生输出信息,确保在压缩过程中出意外随时中断。

5,使用压缩命令:tar -czvf itmslog.tar.gz itms.log.2017-09-09 --remove-files#remove-files将压缩完成后删除源文件。

6,等待压缩完毕,打开test.txt文件取出压缩前信息和压缩后信息做对比。压缩前文件系统信息:根:28% shm:1% boot:20% data:85%

linux下tar命令压缩时是否需要额外更多缓存空间

压缩后文件系统信息:根:28% shm:1% boot:20% data:89%删除源文件后信息:根:28% shm:1% boot:20% data:5%

linux下tar命令压缩时是否需要额外更多缓存空间

7,压缩过程中,文件系统变化给根目录排行:

linux下tar命令压缩时是否需要额外更多缓存空间

给shm目录排行:

linux下tar命令压缩时是否需要额外更多缓存空间

给boot目录排行:

linux下tar命令压缩时是否需要额外更多缓存空间

给data目录排行

linux下tar命令压缩时是否需要额外更多缓存空间

结论分析


通过对tar命令执行过程进行监控,我们得到的结论是:tar在压缩文件的时候,不会产生大量的缓存文件。因此,在磁盘剩余空间小于被压缩日志文件的时候(当然,压缩后产生的文件一定要大于剩余空间)是可以执行压缩命令的。

weinxin
付生保个人博客
一个运维工程师的自媒体个人博客网站。也是关注IT技术学习和经验分享的原创独立自媒体个人博客。
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: