温馨提示×

Linux怎样清理大文件

小樊
41
2026-07-07 01:07:53
栏目: 智能运维

在 Linux 中清理大文件,通常分 查找大文件 → 确认是否可删 → 安全删除 三步。下面按常见场景给你一套实用方法。


一、查找大文件(最重要)

1️⃣ 查找指定目录中最大的文件

du -ah /path/to/dir | sort -rh | head -20

示例:

du -ah /var | sort -rh | head -20

2️⃣ 使用 find 查找超过指定大小的文件

查找 大于 500MB 的文件:

find / -type f -size +500M 2>/dev/null

查找 大于 1GB 的文件:

find / -type f -size +1G 2>/dev/null

只显示文件大小:

find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null

3️⃣ 按目录统计占用空间

du -h --max-depth=1 / | sort -hr

二、确认是否可以删除(⚠️ 很重要)

常见大文件来源

  • 日志文件:/var/log
  • 缓存文件:/var/cache
  • Docker:/var/lib/docker
  • 数据库文件:/var/lib/mysql
  • 临时文件:/tmp

✅ 不要直接删:

  • 正在运行的程序的日志
  • 数据库数据文件
  • 系统关键文件

三、安全清理大文件的方法

✅ 方法 1:清空文件(推荐)

不删除文件,只清空内容(适合日志)

truncate -s 0 filename

> filename

示例:

> /var/log/syslog

✅ 方法 2:删除文件

rm -f filename

删除前确认:

ls -lh filename

✅ 方法 3:清理日志(系统推荐方式)

journalctl --vacuum-size=500M

journalctl --vacuum-time=7d

四、Docker 占用空间清理(常见)

docker system df
docker system prune -a

五、自动查找并清理(谨慎使用)

删除 30 天未访问、大于 1G 的文件(⚠️ 风险高):

find / -type f -size +1G -atime +30 -delete

建议先查看:

find / -type f -size +1G -atime +30

六、推荐排查顺序(实用)

  1. df -h 看哪个分区满了
  2. du -h --max-depth=1 / 定位目录
  3. find 找大文件
  4. 清空或删除

如果你愿意,可以把下面信息发我,我可以帮你精确分析:

  • df -h 输出
  • 系统类型(Ubuntu / CentOS / 服务器)
  • 磁盘满了 还是 inode 满了

我可以一步步带你清理 ✅

0