温馨提示×

linux cleanup有哪些好方法

小樊
47
2026-10-02 11:23:54
栏目: 智能运维

在 Linux 系统上做“cleanup(清理)”通常分为几类:系统垃圾清理、日志清理、软件包清理、磁盘占用分析、用户文件整理。下面按实用场景给你一套比较全面的方法。


一、系统包管理清理(最常见)

1. apt(Debian / Ubuntu)

sudo apt autoremove        # 删除不再需要的依赖
sudo apt autoclean         # 清理旧版本安装包
sudo apt clean             # 清空 apt 缓存

2. yum / dnf(CentOS / Rocky / Fedora)

sudo dnf autoremove
sudo dnf clean all

3. pacman(Arch)

sudo pacman -Rns $(pacman -Qdtq)   # 删除孤立包
sudo pacman -Scc                   # 清理缓存

二、日志清理(容易占空间)

1. journald 日志

sudo journalctl --disk-usage
sudo journalctl --vacuum-time=7d   # 只保留7天
sudo journalctl --vacuum-size=500M # 限制大小

2. 旧日志文件

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

三、查找大文件 / 大目录

1. 找最占空间目录

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

2. 找大文件

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

3. 交互式分析(推荐)

ncdu /

比 du 直观很多。


四、清理用户级垃圾

1. 缓存目录

rm -rf ~/.cache/*

2. 旧内核(Ubuntu)

dpkg -l | grep linux-image
sudo apt purge linux-image-旧版本

3. Docker 清理(如果用了)

docker system prune -a
docker volume prune

五、自动化 & 定期清理

1. 使用 systemd timer(现代系统)

例如 journald 自动清理(改配置):

sudo vim /etc/systemd/journald.conf
SystemMaxUse=500M
MaxRetentionSec=2week

2. cron 定时任务

0 3 * * 0 apt autoremove -y && journalctl --vacuum-time=7d

六、进阶 / 服务器建议

  • ✅ 不要随便 rm -rf /
  • ✅ 生产环境先 df -h 看哪里满
  • ✅ 用 ncdu 比肉眼安全
  • ✅ 日志优先用 logrotate

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

  • 你用的是 哪类 Linux(Ubuntu / CentOS / Arch)
  • 是 个人电脑还是服务器
  • 主要想清理 磁盘空间还是性能优化

我可以直接给你一套可复制的命令清单。

0 踩