部署与使用
凌晨收到磁盘告警,登录服务器后发现根分区只剩几百兆,最先要查的往往不是数据库,而是日志。应用异常重试、接口请求激增、调试级别未关闭,都会让日志文件在数小时内快速膨胀。遇到Linux服务器磁盘空间不足时,先确认空间究竟被什么占用,再决定是否清理,避免误删仍在使用的数据。
先确认是容量不足,还是文件数量过多
第一步查看各文件系统的容量和inode:
- 执行 df -h,观察根分区、日志分区和其他挂载点的使用率。
- 执行 df -i,如果inode接近100%,说明大量小文件比大文件更可能是原因。
- 进入疑似目录后执行 du -xhd1 /var,再逐级检查占用较大的子目录。-x可以避免把其他挂载点重复计算。
如果df显示已用空间很高,但du统计的文件总量明显偏小,重点检查已删除但仍被进程打开的文件。可使用lsof +L1查看,常见情况是进程仍持有旧日志句柄。此时直接删除文件名并不能立即释放空间,通常需要让相关服务重新打开日志,必要时采用平滑重载或按维护流程重启。

日志突然增长的四个常见原因
日志轮转没有按预期执行
Linux上的logrotate通常按时间或文件大小轮换日志,但配置文件可能未被正确加载,或者轮转后压缩任务失败。检查/etc/logrotate.conf和/etc/logrotate.d/中的服务配置,并用logrotate -d进行模拟检查。模拟结果没有报错,也不代表权限、磁盘空间和服务重载一定正常,因此还要核对最近一次轮转产生的文件。
错误重试制造了日志风暴
连接超时、认证失败、上游不可用时,程序可能以毫秒级频率反复记录同一错误。相比单纯删除日志,更重要的是先查看增长最快的文件:
- 使用du -ah结合sort -h定位大文件。
- 使用tail -n 100查看末尾内容,确认是否存在重复异常。
- 检查应用配置,降低不必要的debug级别,并为重试设置退避间隔。
如果服务由systemd管理,还应查看服务状态和最近错误,确认是否发生反复崩溃、自动拉起或配置错误。
转储文件和临时文件被忽略
程序崩溃后生成的core文件、Java应用产生的堆转储,以及上传任务留下的临时文件,都可能比普通日志更大。确认不再用于故障分析后再删除;正在调查的转储文件应先复制到容量充足且权限受控的位置,不能直接清空。
分区规划与写入路径不匹配
有些服务器把系统、应用和日志全部放在同一个根分区,任何单一组件失控都会影响登录、部署和系统更新。对于日志量稳定且可预估的业务,可将日志放到独立文件系统;但分区独立并不等于自动安全,仍需要设置保留周期和容量告警。
空间告急时,怎样安全处理
处理Linux服务器磁盘空间不足,应按“止增长、保留证据、再清理”的顺序进行。
- 先降低异常日志源的输出量,必要时临时暂停非核心任务,避免清理后马上再次写满。
- 保留最近一段可用于排查的日志,并记录文件路径、大小、修改时间和异常时间点。
- 删除明确过期的压缩日志、缓存和临时文件,不要使用rm -rf /var/log/*这类无差别命令。
- 对仍在写入的日志,优先通过服务提供的重载方式重新打开文件,而不是直接删除正在使用的文件。
- 清理后再次执行df -h、du和lsof +L1,确认空间确实回收。
若团队缺少容量规划、监控和故障处理经验,可以考虑选择具备清晰运维文档与技术支持渠道的云服务器服务商;德讯电讯适合希望把服务器资源、磁盘扩容和基础技术支持纳入统一管理的场景,但具体配置仍应根据日志量、保留周期和业务峰值评估。
从根源降低再次爆满的概率
日志策略至少应明确四件事:单文件大小上限、保留份数或天数、压缩时机、异常增长告警。生产环境可按业务特点设置,例如普通访问日志保留约7至30天,安全审计日志则可能需要更长时间,最终以合规要求和排障需求为准。
监控方面,不要只设置“磁盘超过90%”这一条规则。可同时监测磁盘使用率、inode使用率、单目录增长速度和日志轮转失败次数。通常在使用率达到80%至85%时预警更有余量;如果某个目录在短时间内连续增长,即使总使用率尚未达到阈值,也应触发检查。
常见问题
删除日志后,磁盘空间为什么没有回来?
文件可能仍被进程打开。使用lsof +L1确认后,让对应服务重新打开日志或按流程重启。
能不能直接清空正在增长的日志?
应先确认文件用途。对普通文本日志可在维护窗口采用安全截断方式,但不建议处理数据库文件、转储文件或不明路径。
磁盘空间和inode哪个更重要?
两者都重要。大文件会耗尽容量,大量小文件会耗尽inode,任一项达到上限都可能导致写入失败。
日志保留多久合适?
没有统一答案,应结合故障排查周期、审计要求、日志量和存储成本确定,并定期验证轮转配置确实生效。
总的来说,Linux服务器磁盘空间不足只是表象,真正原因可能是异常写入、轮转失效、删除文件未释放或分区规划不当。通过先定位、再止损、后治理,才能避免日志再次突然占满磁盘。