首页/系统/Linux 运维命令速查/场景:日志压缩归档与过期清理
文件与目录76 条

场景:日志压缩归档与过期清理

磁盘告急清理的标准操作:先干跑核对范围,再压缩归档,最后按更老策略删除;全程空值保护、留痕可回溯。

Linux 运维命令速查系统更新于 2026-10-12
场景清理 30 天前的日志/临时文件
组合find mtime + print0 + xargs -0 + gzip/rm 分级处理

第 1 步:干跑核对

第 1 步:干跑核对
find /var/log/app -type f -name '*.log' -mtime +30 -print | head
find /var/log/app -type f -name '*.log' -mtime +30 -print0 | du -ch --files0-from=- 2>/dev/null | tail -1

第 2 步:压缩 30 天前日志

第 2 步:压缩 30 天前日志
find /var/log/app -type f -name '*.log' -mtime +30 -print0 | xargs -0 -r gzip -9

第 3 步:删除更老的归档

第 3 步:删除更老的归档
find /var/log/app -type f -name '*.log.gz' -mtime +180 -print0 | xargs -0 -r rm -v --
生产正解是 logrotate 定期切割 + 保留策略;本场景用于应急或不受管理的目录。

易错点

  • -mtime +30 指「超过 30×24 小时」,与自然日直觉有偏差:要按自然日加 -daystart
  • find 不带 -print0(或 xargs 不带 -0)遇到空格文件名会拆错参数:删文件务必成对使用

数据来源与参考

  • man 1 find(GNU findutils 手册)
  • man 1 xargs(GNU findutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌