0

0

Linux 磁盘空间告急时的应急处理策略

冷漠man

冷漠man

发布时间:2026-01-29 17:26:40

|

217人浏览过

|

来源于php中文网

原创

这是典型的“已删除但未释放文件”问题:进程仍占用已被rm删除的文件句柄,导致df显示满而du统计小;可用lsof +L1或lsof|grep deleted定位,重启进程或kill释放,禁用echo>/proc//fd/清空。

linux 磁盘空间告急时的应急处理策略

df 显示磁盘已满,但 du 统计总和远小于该值

这是典型的“已删除但未释放文件”问题:某个进程仍在占用已被 rm 删除的文件句柄,导致磁盘空间无法回收。

执行 lsof +L1 可列出所有被删除但仍被打开的文件(+L1 表示 link count = 0);若无输出,尝试 lsof | grep deleted(部分旧版 lsof 不支持 +L1)。

常见场景包括:日志轮转后旧进程未重载、容器内应用未响应 SIGUSR1、长时间运行的 tail -f 指向已被删的日志。

  • 确认后,可选择重启对应进程(如 systemctl restart nginx),或直接 kill 进程(kill -9 )强制释放
  • 不建议用 echo > /proc//fd/ 清空文件内容——可能破坏进程逻辑,且对只读 fd 无效
  • 若为容器环境,需进入容器命名空间排查:nsenter -t -m -u -i -n -p -- /bin/sh,再查 /proc/self/fd/

快速定位大目录:du 和 ncdu 的取舍

du -sh /* 2>/dev/null | sort -hr 是最轻量的顶层扫描方式,但会跳过权限不足目录(如 /root/var/lib/lxc)。

若需深度扫描且机器有交互终端,优先用 ncduncdu / 支持键盘导航、实时排序、按 d 安全删除,比纯 du 更直观。

  • 无 ncdu 时,可用 du -h --max-depth=1 /var 2>/dev/null | sort -hr 逐级下钻,避免一次性扫全盘耗时过长
  • 注意 du 默认统计逻辑大小,对稀疏文件(如 qcow2 镜像)可能严重低估实际占用,此时应加 --apparent-size 对比
  • 别在 /proc/sys/dev 上跑 du——这些是虚拟文件系统,du 会卡住或报错

清理 /var/log 下的 journald 日志

systemd-journald 默认不限制日志体积,长期运行的服务器可能积累数十 GB 的 /var/log/journal/ 数据。

SEEK.ai
SEEK.ai

AI驱动的智能数据解决方案,询问您的任何数据并立即获得答案

下载

先查当前用量:journalctl --disk-usage;再按需清理:

  • 保留最近 3 天:journalctl --vacuum-time=3d
  • 限制总大小为 500M:journalctl --vacuum-size=500M
  • 永久生效:编辑 /etc/systemd/journald.conf,取消注释并修改 SystemMaxUse=500MMaxRetentionSec=1month
  • 注意:设太小会导致 journalctl -u sshd 查不到历史记录;生产环境建议至少留 100M

临时腾空间:用 truncate 清空正在写入的大文件

当发现某个正在被追加的日志(如 /var/log/syslog 或应用自定义 log)占满磁盘,又不能停服务时,truncate 是最安全的清空手段。

> fileecho "" > file 不同,truncate -s 0 file 不改变 inode、不中断写入流,进程仍可继续写入。

  • 务必确认目标文件确实在被持续写入(lsof +L1 | grep filels -l /proc/*/fd/ | grep file
  • 禁止对数据库数据文件、qcow2 镜像、二进制可执行文件使用 truncate——会直接损坏数据
  • 操作前建议先备份 inode:ls -i /path/to/file,清空后检查是否仍是同一 inode,确保没被重建

真正棘手的情况往往不是空间不够,而是清理后空间立刻又被填满——这说明有异常写入源(如无限循环日志、coredump 未关闭、监控 agent 本地缓存暴增)。这时候得盯住 inotifywait -m -e create,modify /var/logfatrace 实时抓写入行为。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

233

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

502

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

500

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

234

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

341

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3518

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

32

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

52

2026.01.13

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8万人学习

Git 教程
Git 教程

共21课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号