服务器C盘空间报警是运维人员的日常噩梦之一。很多企业的服务器在运行一两年后,系统盘就会被各种日志、临时文件、系统更新残留填满,轻则影响性能,重则导致服务崩溃。本文介绍一套快速应急+长效治理的完整思路。
一、紧急排查:找到空间杀手
首先用工具快速定位占用大户,推荐使用WinDirStat或TreeSize Free扫描全盘,5分钟内即可得到直观的目录占用图。通常嫌疑最大的几个位置:
- C:\Windows\SoftwareDistribution\Download:Windows Update下载缓存,可以安全清空(停止Windows Update服务后删除)。
- C:\Windows\Temp 和 %USERPROFILE%\AppData\Local\Temp:系统临时文件,定期清理无风险。
- C:\Windows\Installer:MSI补丁缓存,不要手动删除,可用msizap或PatchCleaner工具安全清理孤立文件。
- 应用日志目录:IIS日志(C:\inetpub\logs)、SQL Server日志、各类中间件日志,是最常见的空间吞噬者。
二、IIS日志的治理
IIS默认每天生成一个日志文件,高流量网站每天日志可达数百MB。建议:
- 在IIS管理器中将日志目录改到D盘或数据盘。
- 配置日志滚动策略,只保留最近30天,更早的压缩归档或删除。
- 使用PowerShell定时任务自动清理:
Get-ChildItem "D:\iislogs" -Recurse | Where {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} | Remove-Item
三、Windows更新残留清理
执行系统更新后,旧版本的组件文件会保留在WinSxS目录中,供回滚使用。若服务器运行稳定,可通过以下命令安全清理:
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase:清理所有旧版本组件,执行后无法回滚已安装的补丁,需确认系统稳定后再操作。- 通过"磁盘清理"工具选择"清理系统文件",勾选"Windows更新清理",图形化操作更直观。
四、长效治理建议
应急处理治标,长效机制才治本:
- 建立监控告警:用Zabbix或Prometheus监控磁盘使用率,在剩余20%时告警,10%时升级告警。
- 规划合理的分区策略:系统盘(C:)只装OS和关键组件,数据、日志、数据库文件分别放到独立磁盘或分区。
- 对日志类文件设置策略,按大小或时间自动轮转(logrotate思路在Windows上可用计划任务实现)。