创意预览图

## 6.rm 删了文件,磁盘空间为什么不释放? 线上磁盘告警,你查到 `/data/server/wg/` 下有个 20G 的 `nohup.out`,二话不说 `rm -f nohup.out`,

用户头像

1r44o61adj2...

2026.06.08
## 6.rm 删了文件,磁盘空间为什么不释放? 线上磁盘告警,你查到 `/data/server/wg/` 下有个 20G 的 `nohup.out`,二话不说 `rm -f nohup.out`,但 `df -h` 一看——磁盘使用率纹丝不动。 **问题出在哪?怎么排查?怎么解决?** #### 6.1 根因 Linux 删除文件只是删了**目录的引用(硬链接)**。只要还有**进程持有该文件的文件描述符(fd)**,文件数据就还在磁盘上,内核不会真正回收。 #### 6.2 排查三板斧 ```bash # 1. 看哪个进程还占着文件(文件已被删除但 fd 没关) lsof | grep deleted # 输出示例: java 3428058 3428754 http-nio- worker 2w REG 253,16 1812247564 268667931 /data/server/wg/nohup.out (deleted) # 2. 只看大小超过 100MB 的已删除文件 lsof | grep deleted | awk '{if($7>104857600) print $0}' # 3. 确认进程还在写日志 ls -l /proc/3428058/fd/5 lr-x------ 1 worker worker 64 Jun 8 16:51 /proc/3428058/fd/5 -> /data/server/wg/udp6-api-6.9.1-SNAPSHOT.jar ``` #### 6.3 解决方案(二选一) ```bash # 方案一:重启进程(不优雅,但最常用) ./restart.sh # 方案二:直接清空 fd,空间立即释放,进程不中断(优雅) echo '' > /proc/3428058/fd/5 # 清空 truncate -s 0 /proc/3428058/fd/5 # 或 truncate ``` #### 6.4 日常预防 ```bash # 清日志不要 rm,用重定向(不会产生 deleted 文件) > nohup.out # 或 cat /dev/null > nohup.out ``` **口诀:**rm 删的是路径,进程不放手空间不归还;lsof 查 deleted,truncate 清 fd。 根据上面内容,你不能加内容,生成一张图片## 6.rm 删了文件,磁盘空间为什么不释放?
线上磁盘告警,你查到 `/data/server/wg/` 下有个 20G 的 `nohup.out`,二话不说 `rm -f nohup.out`,但 `df -h` 一看——磁盘使用率纹丝不动。
**问题出在哪?怎么排查?怎么解决?**
#### 6.1 根因
Linux 删除文件只是删了**目录的引用(硬链接)**。只要还有**进程持有该文件的文件描述符(fd)**,文件数据就还在磁盘上,内核不会真正回收。
#### 6.2 排查三板斧
```bash
# 1. 看哪个进程还占着文件(文件已被删除但 fd 没关)
lsof | grep deleted
# 输出示例:
java  3428058 3428754 http-nio- worker    2w      REG             253,16 1812247564  268667931 /data/server/wg/nohup.out (deleted)
# 2. 只看大小超过 100MB 的已删除文件
lsof | grep deleted | awk '{if($7>104857600) print $0}'
# 3. 确认进程还在写日志
ls -l /proc/3428058/fd/5
lr-x------ 1 worker worker 64 Jun  8 16:51 /proc/3428058/fd/5 -> /data/server/wg/udp6-api-6.9.1-SNAPSHOT.jar
```
#### 6.3 解决方案(二选一)
```bash
# 方案一:重启进程(不优雅,但最常用)
./restart.sh
# 方案二:直接清空 fd,空间立即释放,进程不中断(优雅)
echo '' > /proc/3428058/fd/5           # 清空
truncate -s 0 /proc/3428058/fd/5        # 或 truncate
```
#### 6.4 日常预防
```bash
# 清日志不要 rm,用重定向(不会产生 deleted 文件)
> nohup.out
# 或
cat /dev/null > nohup.out
```
**口诀:**rm 删的是路径,进程不放手空间不归还;lsof 查 deleted,truncate 清 fd。
根据上面内容,你不能加内容,生成一张图片
1242 × 1656 px 竖版纯白背景信息架构图,采用「目录树 + 分栏说明」布局,整体干净清爽,专业商务风。 - 顶部:左侧是红色太阳状图标,右侧是黑色粗体标题文字:"我的 Skills 文件结构"。 - 左侧区域:绘制文件系统目录树,使用不同颜色的文件夹图标: - 绿色根文件夹:"skills/" - 子文件夹颜色:粉色 "writing/"、蓝色 "coding/"、紫色 "ai-workflow/"、绿色 "design/"、橙色 "research/"、青色 "productivity/"、棕色 "automation/" - 文件夹下的文件用白色矩形+文件图标表示,文件名分别为: writing/:xiaohongshu-copy.md、tweet-thread.md、product-prd.md、seo-article.md coding/:react-component.md、python-script.md、api-design.md、debug-fix.md ai-workflow/:prompt-engineering.md、rag-workflow.md、multi-agent.md、evaluation.md design/:ui-analysis.md、landing-page.md、xiaohongshu-cover.md、visual-system.md research/:竞品分析.md、用户调研.md、行业报告.md、ai-trend.md productivity/:daily-review.md、meeting-summary.md、task-breakdown.md、roadmap-planning.md automation/:n8n-workflow.md、dify-app.md、webhook-config.md、batch-generation.md - 根目录下还有 "README.md" 和 "skills-index.md",带文件图标。 - 右侧区域:分栏展示每个目录的说明,每个说明块用不同的浅色调背景: 1. skills/(浅绿色背景):标题 "skills/ - 技能模块库",内容:存放可复用的 AI 技能 Prompt、按场景拆分能力模块、支持 Agent 自动调用 2. writing/(浅粉色背景):标题 "writing/ - 内容生成",内容:小红书文案、爆款标题、PRD 撰写、产品文档、SEO 长文、知识文章、Twitter Thread 等社交内容 3. coding/(浅蓝色背景):标题 "coding/ - 开发辅助",内容:React 组件、页面生成、Python 脚本、算法实现、API 设计、接口文档、Debug 定位与修复 4. ai-workflow/(浅紫色背景):标题 "ai-workflow/ - AI 工作流",内容:Prompt Engineering 技巧、RAG 检索增强生成流程、Multi-Agent 协作模板、评测标准与效果验证 5. design/(浅绿色背景):标题 "design/ - 设计能力",内容:UI 界面分析与改进建议、落地页、Banner 设计生成、小红书封面、海报设计、视觉系统与设计规范 6. research/(浅橙色背景):标题 "research/ - 研究分析",内容:竞品分析与对比、用户调研与需求洞察、行业报告与趋势分析、AI 产品趋势追踪 7. productivity/(浅青色背景):标题 "productivity/ - 效率管理",内容:日报、周报、复盘总结、任务拆解与优先级规划、Roadmap 规划与执行跟踪、会议纪要与要点整理 8. automation/(浅棕色背景):标题 "automation/ - 自动化能力",内容:n8n 工作流模板、Dify 应用开发模板、Webhook 配置与集成、批量生成与自动化任务 9. README.md 和 skills-index.md(浅灰色背景):README.md:项目说明、使用指南和贡献规范;skills-index.md:技能索引、标签管理与使用说明 - 字体:标题用粗体无衬线字体,正文用常规无衬线字体,所有文字对齐整齐,目录树用灰色连接线,整体风格干净清爽专业商务。1242 × 1656 px 竖版纯白背景信息架构图,采用「目录树 + 分栏说明」布局,整体干净清爽,专业商务风。
- 顶部:左侧是红色太阳状图标,右侧是黑色粗体标题文字:"我的 Skills 文件结构"。
- 左侧区域:绘制文件系统目录树,使用不同颜色的文件夹图标:
  - 绿色根文件夹:"skills/"
  - 子文件夹颜色:粉色 "writing/"、蓝色 "coding/"、紫色 "ai-workflow/"、绿色 "design/"、橙色 "research/"、青色 "productivity/"、棕色 "automation/"
  - 文件夹下的文件用白色矩形+文件图标表示,文件名分别为:
    writing/:xiaohongshu-copy.md、tweet-thread.md、product-prd.md、seo-article.md
    coding/:react-component.md、python-script.md、api-design.md、debug-fix.md
    ai-workflow/:prompt-engineering.md、rag-workflow.md、multi-agent.md、evaluation.md
    design/:ui-analysis.md、landing-page.md、xiaohongshu-cover.md、visual-system.md
    research/:竞品分析.md、用户调研.md、行业报告.md、ai-trend.md
    productivity/:daily-review.md、meeting-summary.md、task-breakdown.md、roadmap-planning.md
    automation/:n8n-workflow.md、dify-app.md、webhook-config.md、batch-generation.md
  - 根目录下还有 "README.md" 和 "skills-index.md",带文件图标。
- 右侧区域:分栏展示每个目录的说明,每个说明块用不同的浅色调背景:
  1. skills/(浅绿色背景):标题 "skills/ - 技能模块库",内容:存放可复用的 AI 技能 Prompt、按场景拆分能力模块、支持 Agent 自动调用
  2. writing/(浅粉色背景):标题 "writing/ - 内容生成",内容:小红书文案、爆款标题、PRD 撰写、产品文档、SEO 长文、知识文章、Twitter Thread 等社交内容
  3. coding/(浅蓝色背景):标题 "coding/ - 开发辅助",内容:React 组件、页面生成、Python 脚本、算法实现、API 设计、接口文档、Debug 定位与修复
  4. ai-workflow/(浅紫色背景):标题 "ai-workflow/ - AI 工作流",内容:Prompt Engineering 技巧、RAG 检索增强生成流程、Multi-Agent 协作模板、评测标准与效果验证
  5. design/(浅绿色背景):标题 "design/ - 设计能力",内容:UI 界面分析与改进建议、落地页、Banner 设计生成、小红书封面、海报设计、视觉系统与设计规范
  6. research/(浅橙色背景):标题 "research/ - 研究分析",内容:竞品分析与对比、用户调研与需求洞察、行业报告与趋势分析、AI 产品趋势追踪
  7. productivity/(浅青色背景):标题 "productivity/ - 效率管理",内容:日报、周报、复盘总结、任务拆解与优先级规划、Roadmap 规划与执行跟踪、会议纪要与要点整理
  8. automation/(浅棕色背景):标题 "automation/ - 自动化能力",内容:n8n 工作流模板、Dify 应用开发模板、Webhook 配置与集成、批量生成与自动化任务
  9. README.md 和 skills-index.md(浅灰色背景):README.md:项目说明、使用指南和贡献规范;skills-index.md:技能索引、标签管理与使用说明
- 字体:标题用粗体无衬线字体,正文用常规无衬线字体,所有文字对齐整齐,目录树用灰色连接线,整体风格干净清爽专业商务。