gzip本身不直接释放空间,但能高效压缩日志、备份等大体积冷数据,配合find定位大文件、logrotate自动轮转及清理缓存,构成安全可靠的磁盘空间治理方案。

gzip 本身不直接“释放空间”,但它能快速减小文件体积,尤其适合处理日志、备份、临时文本等大而冷的数据,是缓解磁盘紧张最常用且安全的手段之一。
先定位哪些文件值得压缩
盲目压缩没意义。重点盯住:/var/log(日志)、/tmp(临时文件)、/var/cache(缓存)这些目录里体积大、访问少的文件。
- 查出最大的 10 个普通文件: find / -type f -size +100M 2>/dev/null | xargs ls -lh | sort -k5 -hr | head -10
- 看日志目录整体占用: du -sh /var/log/* | sort -hr | head -5
- 确认某目录下哪些 .log 文件超过 3 天: find /var/log -name "*.log" -mtime +3
用 gzip 压缩旧文件,保留原始结构
压缩比高(文本类通常达 60%~70%),且不删文件——比直接 rm 更稳妥,还能随时解压还原。
- 压缩单个大日志:
gzip /var/log/syslog.1 → 变成
syslog.1.gz,原文件消失 - 批量压缩 3 天前的日志: find /var/log -name "*.log" -mtime +3 -exec gzip {} \;
- 想保留原文件(比如留作归档副本):
gzip -c access.log > access.log.gz(
-c输出到 stdout,原文件不动)
配合 logrotate 避免反复堆积
光手动压缩一次治标不治本。让系统自动轮转并压缩,才是长期方案。
- 检查当前配置: cat /etc/logrotate.conf
- 强制运行一次(测试或紧急清理): logrotate -f /etc/logrotate.conf
- 典型规则示例(加到对应日志配置中):
compress
compresscmd /bin/gzip
compressext .gz
别忘了清理真正无用的缓存和临时文件
gzip 是“瘦身”,有些东西直接删更干脆:
- Apt 缓存(Ubuntu/Debian): sudo apt-get clean
- Yum/DNF 缓存(CentOS/RHEL): sudo yum clean all 或 sudo dnf clean all
- 清空 tmp(确保无进程在用): sudo rm -rf /tmp/* /var/tmp/*











