怎样优化centos系统清理流程
小樊
38
2025-12-27 09:37:29
优化目标与总体思路
- 建立可持续执行的清理闭环:发现(用量与增长)→ 清理(安全可回滚)→ 防再长(轮转与策略)→ 监控告警(阈值与趋势)。
- 优先使用系统自带工具(如 logrotate、systemd-tmpfiles、journald、yum/dnf、package-cleanup),减少手工删除与误删风险。
- 将清理动作标准化、脚本化,并通过 cron 定时与日志审计落地,形成可回溯的运维记录。
标准清理流程与关键命令
- 磁盘与增长定位
- 快速盘点:df -h、du -sh / | sort -h*、ncdu /(交互式定位大目录/大文件)。
- 包管理与仓库缓存
- 清理缓存:yum clean all(或 dnf clean all)。
- 移除无用依赖:yum autoremove。
- 删除旧内核(保留最近 2 个更稳妥):package-cleanup --oldkernels --count=2。
- 临时文件
- 安全清理:systemd-tmpfiles --clean(遵循 /etc/tmpfiles.d/ 策略,默认常见为 /tmp 14d 清理规则)。
- 必要时补充清理:/tmp/*、/var/tmp/(避免删除正在使用的会话文件)。
- 日志(journald)
- 先轮转再压缩/裁剪:journalctl --rotate && journalctl --vacuum-size=100M 或 –vacuum-time=7d。
- 按服务裁剪:journalctl --vacuum-by-date=2weeks --unit=nginx.service。
- 应用日志与轮转
- 使用 logrotate 管理 /var/log/ 下各类应用日志(按天轮转、压缩、保留 7–30 天)。
- 可选:清理页面/目录项/inode 缓存(仅在低负载窗口、影响可接受时)
- 同步落盘后清理:sync && echo 3 > /proc/sys/vm/drop_caches(1=页缓存,2=目录项与inode,3=全部;谨慎使用)。
自动化与定时任务
- 建议将以下动作纳入 root 的 crontab,统一记录与收敛权限:
- 每日清理包缓存与无用依赖
- 0 2 * * * /usr/bin/yum clean all && /usr/bin/yum autoremove -y
- 每日清理临时文件(遵循 tmpfiles 策略)
- 0 3 * * * /usr/bin/systemd-tmpfiles --clean
- 每周裁剪 journal 到 100MB
- 0 4 * * 0 /usr/bin/journalctl --rotate && /usr/bin/journalctl --vacuum-size=100M
- 每周分析大文件并输出报告(便于审计与清理)
- 0 5 * * 0 /usr/bin/ncdu -x / > /var/log/cleanup/ncdu-$(date +%F).txt 2>&1
- 日志轮转建议
- 保持 /etc/logrotate.conf 与 /etc/logrotate.d/ 中关键应用(如 messages、secure、nginx、httpd)的策略为:daily、rotate 7、compress、missingok、notifempty、create 640 root adm,必要时使用 delaycompress 降低日志断点风险。
安全与性能注意事项
- 清理前先备份关键配置与日志(如 /var/log/ 做一次打包归档),清理后保留操作记录以便审计。
- 避免粗暴删除正在写入的日志文件;优先使用 logrotate 的 copytruncate 或先 reload/restart 服务再清理,减少业务中断。
- 谨慎使用 drop_caches;仅在磁盘紧张且低峰期短时执行,避免影响前台业务与缓存命中率。
- 不要随意关闭 SELinux 或防火墙;如确需调整,遵循最小权限原则并做好变更记录与回滚方案。
- 生产变更遵循“先测试、再灰度、后全量”的流程,变更窗口避开业务高峰。
监控与容量规划
- 容量阈值告警:对 /、/var 设置 >80% 告警,对 /boot 设置 >90% 告警(旧内核与 initramfs 常导致爆满)。
- 趋势与瓶颈:使用 nmon、top、vmstat、iostat 观察 CPU、内存、I/O 与 swap 使用;长期建议接入 Prometheus + Grafana 做容量与增长趋势可视化。
- 日志增长治理:对高频日志应用(如 nginx/access)实施采样、降级或冷热分层归档,避免 journal 与应用日志“双增长”。