温馨提示×

centos cleanup有哪些最佳实践

小樊
39
2026-09-03 01:13:27
栏目: 智能运维

在 CentOS(以及 RHEL 系列)系统上做 系统清理(cleanup) 通常分为:包管理清理、日志清理、临时文件清理、内核清理、磁盘与快照管理、服务与开机项优化 等几个方面。下面给你一套最佳实践清单,兼顾安全与可维护性。


一、YUM / DNF 包管理清理(最重要)

1. 清理 YUM 缓存

yum clean all
# 或 CentOS 8+
dnf clean all

2. 删除无用依赖

yum autoremove
# 或
dnf autoremove

✅ 会删除“不再被任何软件依赖”的包

3. 查看并清理旧内核(谨慎)

rpm -q kernel

保留 当前运行内核 + 1 个备用内核 即可:

package-cleanup --oldkernels --count=2

⚠️ 不要删除正在使用的内核:

uname -r

二、日志清理(Journal & 传统日志)

1. systemd journal 日志

查看占用:

journalctl --disk-usage

限制大小(推荐):

journalctl --vacuum-size=200M
# 或按时间
journalctl --vacuum-time=7d

永久配置:

/etc/systemd/journald.conf
SystemMaxUse=200M

2. 传统日志(/var/log)

清理旧日志:

rm -f /var/log/*.old
rm -f /var/log/*-202*

使用 logrotate(推荐):

logrotate -d /etc/logrotate.conf  # 测试
logrotate -f /etc/logrotate.conf  # 强制执行

三、临时文件清理

1. /tmp 与 /var/tmp

rm -rf /tmp/*
rm -rf /var/tmp/*

CentOS 7+ 可启用自动清理:

systemctl status systemd-tmpfiles-clean

2. 用户缓存

rm -rf ~/.cache/*

四、磁盘空间分析与清理

1. 查找大文件

du -sh /*
du -sh /var/*

找最大目录:

ncdu /

2. 删除 core dump

rm -f /var/crash/*
rm -f /core.*

五、服务与开机项优化

1. 查看开机启动服务

systemctl list-unit-files --type=service | grep enabled

关闭不必要的服务(示例):

systemctl disable postfix
systemctl stop postfix

六、Docker / 容器环境(如适用)

docker system prune -a
docker volume prune

⚠️ 会删除未使用的镜像、容器、网络


七、生产环境注意事项(最佳实践)

不要直接 rm -rf /
清理前先 df -h / du 分析
重要服务器先快照 / 备份
内核、/boot 不要清空
使用 logrotate,而非手动删日志


八、推荐的一键安全清理脚本(示例)

#!/bin/bash
yum clean all
dnf autoremove -y
journalctl --vacuum-size=200M
rm -rf /tmp/*
rm -rf /var/tmp/*
logrotate -f /etc/logrotate.conf

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

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 是否是 生产服务器 / 虚拟机 / Docker 主机
  • 磁盘空间告急还是日常维护

我可以给你更针对性的清理方案

0