温馨提示×

如何高效linux cleanup

小樊
55
2026-09-02 09:41:59
栏目: 智能运维

在 Linux 系统中做“高效 cleanup”通常分为几个层面:系统垃圾清理、日志与缓存管理、磁盘空间释放、自动化维护。下面按「实用优先级」给你一套高效做法。


一、快速释放磁盘空间(最常用)

1. 查看谁占空间

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

重点目录:

  • /var/log
  • /tmp
  • ~/.cache
  • /var/lib/docker

2. 清理包管理器缓存

Debian / Ubuntu

sudo apt autoremove
sudo apt clean

CentOS / RHEL

sudo yum clean all
# 或
sudo dnf autoremove
sudo dnf clean all

3. 清理日志(journal / log)

# 只保留最近 7 天日志
sudo journalctl --vacuum-time=7d

# 限制日志最大 500MB
sudo journalctl --vacuum-size=500M

手动清理旧 log:

sudo find /var/log -type f -name "*.log" -mtime +30 -delete

4. 清理临时文件

sudo rm -rf /tmp/*
rm -rf ~/.cache/*

二、Docker 清理(非常占空间)

docker system prune -a
docker volume prune

只删没用的:

docker image prune
docker container prune

三、找出“大文件 / 大目录”

# 找出大于 100MB 的文件
find / -type f -size +100M -exec ls -lh {} \;

或用 ncdu(强烈推荐):

sudo apt install ncdu
ncdu /

四、自动化 cleanup(高效关键)

1. 使用 systemd 定时清理

sudo systemctl enable --now fstrim.timer   # SSD 优化

2. 写一个简单的 cleanup 脚本

#!/bin/bash
apt autoremove -y
apt clean
journalctl --vacuum-time=7d
rm -rf /tmp/*
docker system prune -af

加执行权限并设 cron:

crontab -e
0 3 * * 0 /path/cleanup.sh

五、进阶(服务器 / 生产环境)

  • 使用 logrotate 控制日志大小
  • 限制用户 home 配额(quota
  • 使用 tmpfs 挂载 /tmp
  • 定期监控:prometheus + node_exporter

六、一句话总结

高效 cleanup = 找出占用 → 清包 / 日志 / 缓存 / Docker → 自动化

如果你愿意,可以告诉我:

  • 桌面还是服务器
  • Ubuntu / CentOS / Arch
  • 主要问题是 磁盘满了还是卡顿

我可以直接给你一套「定制命令清单」。

0