CentOS深度清理实操指南

一准备与风险

操作前先备份重要数据与配置文件,清理过程中避免删除系统关键目录与正在使用的文件。

优先使用包管理器(yum/dnf)与系统工具(如systemd-tmpfiles、logrotate)执行清理,减少误删风险。

以下命令默认需要root或在命令前加sudo执行。

二标准清理流程

查看空间占用:执行df-h确认分区使用率,再用du-sh/|sort-h*定位大目录。

清理包管理缓存:执行yumcleanall;若为CentOS8+且使用DNF,执行dnfcleanall。

删除无用依赖与孤立包:执行yumautoremove;必要时用package-cleanup--quiet--leaves--exclude-bin|xargsyumremove-y清理“叶子”包(仅限已安装yum-utils)。

清理旧内核:先查看rpm-qkernel;保留最近2个内核,执行package-cleanup--oldkernels--count=2(仅限已安装yum-utils)。

清理临时文件:执行systemd-tmpfiles--clean;必要时补充清理/tmp与/var/tmp(见下一节细化)。

清理日志:对journald执行journalctl--vacuum-time=2weeks;对/var/log的旧日志可结合logrotate或按时间截断/删除(见下一节细化)。

清理内存页缓存(可选,非释放磁盘):执行sync&&echo3|sudotee/proc/sys/vm/drop_caches。

查找并处置大文件:执行ncdu/交互式定位大文件;或用find/-typef-size+100M-execls-lh{};列出大于100MB的文件,确认后删除。

三关键目录与日志的细化处理

临时文件

推荐方式:使用systemd-tmpfiles--clean,它会按/etc/tmpfiles.d/*.conf的规则安全清理(如/tmp14d表示清理14天未访问的文件)。

手动清理(谨慎):/tmp与/var/tmp可直接清理,但需确保无程序占用;可按时间清理,如find/tmp-typef-mtime+7-delete与find/var/tmp-typef-mtime+7-delete。

日志文件

journald:执行journalctl--vacuum-time=2weeks或–vacuum-size=500M限制日志体积与保存时间。

/var/log:优先使用logrotate进行轮转与压缩;如需临时释放空间,可对指定日志执行truncate-s0/var/log/file.log,或删除已轮转的旧日志(如.gz、.old),避免直接rm-rf/var/log/*。

四自动化与长期维护

定时清理脚本示例(/usr/local/bin/cleanup.sh):

内容:

#!/bin/bashset-eyumcleanall||truecommand-vdnf>/dev/null&&dnfcleanall||trueyumautoremove-y||trueifcommand-vpackage-cleanup>/dev/null;thenpackage-cleanup--oldkernels--count=2-y||truepackage-cleanup--quiet--leaves--exclude-bin|xargsyumremove-y||truefisystemd-tmpfiles--clean||truejournalctl--vacuum-time=2weeks||truesyncecho3|tee/proc/sys/vm/drop_caches>/dev/null||true

赋权与定时:

赋权:chmod+x/usr/local/bin/cleanup.sh

每天02:00执行:echo“02***/usr/local/bin/cleanup.sh>>/var/log/cleanup.log2>&1”|tee-a/var/spool/cron/root

确保crond运行:systemctlenable--nowcrond

可选:安装ncdu做定期巡检(yuminstall-yncdu),直观查看目录占用变化。

五常见陷阱与建议

不要直接rm-rf/var/log/*,优先用logrotate或journalctl管理日志,避免破坏正在写入的日志与轮转链路。

清理/tmp与/var/tmp前确认无服务/进程占用;生产环境建议用systemd-tmpfiles按计划清理,而非粗暴全删。

删除旧内核务必保留至少1–2个可启动内核,避免更新失败导致无法启动;删除前用rpm-qkernel核对版本。

谨慎使用echo3>/proc/sys/vm/drop_caches,它仅释放内存页缓存,对磁盘空间无影响,且频繁清理可能降低文件系统性能。