温馨提示×

怎样优化centos系统清理流程

小樊
38
2025-12-27 09:37:29
栏目: 智能运维

优化目标与总体思路

  • 建立可持续执行的清理闭环:发现(用量与增长)→ 清理(安全可回滚)→ 防再长(轮转与策略)→ 监控告警(阈值与趋势)。
  • 优先使用系统自带工具(如 logrotate、systemd-tmpfiles、journald、yum/dnf、package-cleanup),减少手工删除与误删风险。
  • 将清理动作标准化、脚本化,并通过 cron 定时与日志审计落地,形成可回溯的运维记录。

标准清理流程与关键命令

  • 磁盘与增长定位
    • 快速盘点:df -hdu -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=全部;谨慎使用)。

自动化与定时任务

  • 建议将以下动作纳入 rootcrontab,统一记录与收敛权限:
    • 每日清理包缓存与无用依赖
      • 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/ 做一次打包归档),清理后保留操作记录以便审计。
  • 避免粗暴删除正在写入的日志文件;优先使用 logrotatecopytruncate 或先 reload/restart 服务再清理,减少业务中断。
  • 谨慎使用 drop_caches;仅在磁盘紧张且低峰期短时执行,避免影响前台业务与缓存命中率。
  • 不要随意关闭 SELinux 或防火墙;如确需调整,遵循最小权限原则并做好变更记录与回滚方案。
  • 生产变更遵循“先测试、再灰度、后全量”的流程,变更窗口避开业务高峰。

监控与容量规划

  • 容量阈值告警:对 //var 设置 >80% 告警,对 /boot 设置 >90% 告警(旧内核与 initramfs 常导致爆满)。
  • 趋势与瓶颈:使用 nmon、top、vmstat、iostat 观察 CPU、内存、I/Oswap 使用;长期建议接入 Prometheus + Grafana 做容量与增长趋势可视化。
  • 日志增长治理:对高频日志应用(如 nginx/access)实施采样、降级或冷热分层归档,避免 journal 与应用日志“双增长”。

0