使用lsof排查Linux磁盘空间泄露:原理、实战与预防

lsof命令磁盘空间泄露Linux系统运维
于 2026-07-07 15:30:30 修改
·本内容遵循CC 4.0 BY-SA版权协议

你是否曾经遇到过这样的情况:服务器磁盘空间莫名其妙被占满,但使用 du -sh 命令却找不到大文件?系统告警不断,业务面临中断风险,而你却束手无策?

这种情况在生产环境中并不少见。很多时候,问题并非文件本身过大,而是某些进程打开了文件却未正确释放,导致文件虽然已被删除,但磁盘空间仍被占用。这就是典型的"磁盘空间泄露"问题。

今天要介绍的 lsof 命令,正是解决这类问题的利器。它不仅能帮你快速定位问题根源,还能在关键时刻成为系统救火的第一工具。本文将深入解析如何用 lsof 排查磁盘空间泄露问题,并提供完整的实战案例。

1. 磁盘空间泄露的真正本质

很多人误以为磁盘空间问题就是文件太大,但实际上更常见的情况是:文件已被删除,但空间未被释放。

1.1 为什么删除文件后空间不释放?

在 Linux 系统中,当一个进程打开文件时,系统会为该文件分配一个文件描述符。即使你使用 rm 命令删除了这个文件,只要还有进程持有该文件的描述符,磁盘空间就不会被真正释放。

这是因为 Linux 的文件系统采用引用计数机制:

  • 每个文件都有一个链接计数
  • rm 命令只是减少链接计数
  • 当链接计数为0且没有进程使用时,空间才会释放

1.2 这种问题的典型症状

  • df -h 显示磁盘使用率很高
  • du -sh / 统计的实际文件大小却小很多
  • 重启相关服务后磁盘空间突然释放
  • 系统日志中出现 "No space left on device" 错误

2. lsof 命令的核心价值

lsof(list open files)是一个列出当前系统打开文件的工具。它的强大之处在于能够显示被删除但仍被进程占用的文件。

2.1 lsof 的基本工作原理

lsof 通过读取 /proc 文件系统来获取进程打开文件的信息。每个进程在 /proc/<pid>/fd/ 目录下都有其打开的文件描述符信息。

2.2 lsof 与其他工具的区别

工具 功能 适用场景
df 查看文件系统磁盘空间使用情况 快速了解整体磁盘状况
du 计算文件和目录磁盘使用量 查找大文件和大目录
lsof 列出打开的文件和网络连接 排查文件句柄泄露、空间泄露

3. 环境准备与基础配置

3.1 检查 lsof 是否安装

大多数 Linux 发行版都预装了 lsof,可以通过以下命令验证:

BASH
which lsof
lsof -v

如果未安装,根据系统类型选择安装命令:

BASH
# CentOS/RHEL
yum install lsof
 
# Ubuntu/Debian
apt-get install lsof
 
# macOS
brew install lsof

3.2 理解 lsof 的输出格式

在使用 lsof 前,先了解其输出各列的含义:

BASH
lsof

典型输出示例:

TEXT
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1234 root cwd DIR 253,0 4096 131073 /home/user
python 5678 user txt REG 253,0 3028992 394221 /usr/bin/python3.8
nginx 9012 root 4u REG 253,0 0 524289 /var/log/nginx/access.log (deleted)

关键列说明:

  • COMMAND:进程名称
  • PID:进程ID
  • USER:进程所有者
  • FD:文件描述符
  • TYPE:文件类型
  • DEVICE:设备号
  • SIZE/OFF:文件大小/偏移量
  • NODE:节点号
  • NAME:文件名(deleted 表示已删除)

4. 使用 lsof 排查磁盘空间泄露的完整流程

4.1 第一步:确认磁盘空间异常

首先使用标准命令确认问题:

BASH
# 查看磁盘使用情况
df -h
 
# 查看根目录实际文件大小
du -sh /* 2>/dev/null | sort -hr | head -10

如果 df 显示使用率高,但 du 统计的文件总和小,基本可以确定存在空间泄露。

4.2 第二步:查找被删除但仍被占用的文件

这是最关键的步骤:

BASH
# 查找所有被删除但仍被进程占用的文件
lsof +L1
 
# 或者更详细的查询
lsof | grep deleted

+L1 选项表示查找链接计数小于1的文件,通常就是被删除的文件。

4.3 第三步:分析结果并定位问题进程

查看详细的被占用文件信息:

BASH
lsof | grep deleted | sort -k7 -hr

示例输出分析:

TEXT
java 2345 appuser 12u REG 253,0 1073741824 1234567 /tmp/large_file.log (deleted)
python 3456 webuser 3w REG 253,0 536870912 7654321 /var/log/app/debug.log (deleted)

从输出可以看到:

  • Java 进程 2345 占用了一个 1GB 的已删除文件
  • Python 进程 3456 占用了一个 500MB 的日志文件

4.4 第四步:计算被占用空间总量

统计所有被删除文件占用的总空间:

BASH
lsof | grep deleted | awk '{if($7~/^[0-9]+$/) print $7}' | awk '{sum+=$1} END {print "总占用空间:", sum/1024/1024, "MB"}'

5. 实战案例:Web 应用日志文件泄露排查

5.1 问题描述

某电商网站在大促期间突然出现磁盘空间告警,df -h 显示 /var 分区使用率达到 95%,但 du -sh /var/* 显示实际文件只占用了 60% 的空间。

5.2 排查过程

BASH
# 1. 确认问题
df -h /var
# 输出:/dev/sda1 50G 45G 2.0G 96% /var
 
du -sh /var/*
# 输出:总计约30G
 
# 2. 使用lsof查找被删除但仍被占用的文件
lsof +L1 | grep /var

发现关键信息:

TEXT
tomcat 12345 tomcat 44w REG 253,0 8589934592 1234567 /var/log/tomcat/catalina.out (deleted)

5.3 问题分析

Tomcat 进程打开了一个日志文件进行写入,但该文件后来被运维人员误删除。由于进程仍持有文件描述符,继续写入的数据实际上占用了磁盘空间,但通过 ls 命令看不到这个文件。

5.4 解决方案

BASH
# 方案1:重启Tomcat服务(生产环境谨慎)
systemctl restart tomcat
 
# 方案2:优雅地重新打开日志文件
# 查找Tomcat进程
ps aux | grep tomcat
 
# 向Tomcat发送USR1信号,重新打开日志文件
kill -USR1 12345
 
# 方案3:清空文件内容(如果仍需保留进程)
# 找到对应的文件描述符
ls -la /proc/12345/fd/ | grep deleted
 
# 清空文件内容
: > /proc/12345/fd/44

5.5 验证结果

BASH
# 检查空间是否释放
df -h /var
# 输出应显示使用率显著下降
 
# 确认被占用文件已处理
lsof +L1 | grep /var
# 应该看不到之前的被删除文件

6. 高级排查技巧与脚本化方案

6.1 定期监控脚本

创建定期检查脚本,预防空间泄露:

BASH
# !/bin/bash
# check_space_leak.sh
 
THRESHOLD=80 # 磁盘使用率阈值
PARTITION="/var" # 监控的分区
 
# 检查磁盘使用率
usage=$(df $PARTITION | awk 'NR==2 {print $5}' | sed 's/%//')
 
if [ $usage -gt $THRESHOLD ]; then
echo "警告: $PARTITION 分区使用率 ${usage}% 超过阈值 ${THRESHOLD}%"
# 检查是否存在空间泄露
leaked_files=$(lsof +L1 2>/dev/null | wc -l)
if [ $leaked_files -gt 0 ]; then
echo "发现可能的空间泄露问题:"
lsof +L1 2>/dev/null | head -10
echo "详细报告已保存到 /tmp/space_leak_report.txt"
lsof +L1 2>/dev/null > /tmp/space_leak_report.txt
else
echo "未发现明显的空间泄露问题,建议检查大文件"
fi
fi

设置定时任务:

BASH
# 每天检查一次
echo "0 2 * * * /root/check_space_leak.sh" >> /etc/crontab

6.2 按用户或进程分组统计

BASH
# 按进程名分组统计
lsof +L1 | awk '{print $1}' | sort | uniq -c | sort -nr
 
# 按用户分组统计
lsof +L1 | awk '{print $3}' | sort | uniq -c | sort -nr
 
# 详细统计脚本
lsof +L1 2>/dev/null | awk '
NR>1 {
proc[$1]++
user[$3]++
size[$1] += $7
}
END {
print "=== 按进程统计 ==="
for (p in proc) {
printf "进程: %-15s 文件数: %3d 总大小: %d MB\n", p, proc[p], size[p]/1024/1024
}
print "\n=== 按用户统计 ==="
for (u in user) {
printf "用户: %-10s 文件数: %3d\n", u, user[u]
}
}'

7. 常见问题与精准排查方法

7.1 问题排查对照表

问题现象 可能原因 排查命令 解决方案
磁盘使用率100%但找不到大文件 文件被删除但进程仍占用 lsof +L1 重启进程或重新打开文件
日志文件轮转后空间不释放 日志进程未重新打开文件 lsof | grep deleted 发送信号让进程重新打开日志
容器内磁盘空间异常 容器内进程文件句柄泄露 lsof -p <pid> 重启容器或进程
临时文件不断增长 程序创建临时文件未删除 lsof | grep /tmp 检查程序逻辑,完善文件清理

7.2 lsof 常见参数详解

BASH
# 查看特定进程打开的文件
lsof -p 1234
 
# 查看特定用户打开的文件
lsof -u username
 
# 查看特定目录下被打开的文件
lsof +D /path/to/directory
 
# 查看特定文件类型的打开情况
lsof -i :80 # 查看80端口
lsof -i tcp # 查看所有TCP连接
lsof -c nginx # 查看nginx进程打开的文件
 
# 组合查询
lsof -u appuser -a -i tcp:8080

7.3 权限问题处理

普通用户可能无法查看所有进程信息:

BASH
# 使用sudo获取完整信息
sudo lsof +L1
 
# 或者切换到root用户
su - root
lsof +L1

8. 生产环境最佳实践与预防措施

8.1 预防空间泄露的工程实践

应用程序层面:

PYTHON
# Python示例:正确的文件处理方式
try:
with open('large_file.log', 'w') as f:
# 处理文件
f.write(data)
finally:
# 确保文件关闭
if 'f' in locals() and not f.closed:
f.close()

系统配置层面:

BASH
# 设置文件描述符限制
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
 
# 监控关键目录的文件句柄使用
watch "lsof /var/log | wc -l"

8.2 日志管理最佳实践

BASH
# 使用logrotate管理日志,避免手动删除
cat /etc/logrotate.d/tomcat
/var/log/tomcat/*.log {
daily
rotate 30
compress
missingok
notifempty
copytruncate # 关键:复制后截断,避免重启服务
delaycompress
}

8.3 监控告警体系

建立完整的监控体系:

  • 磁盘使用率监控(阈值85%告警)
  • 文件句柄使用监控
  • 关键进程文件打开数监控
  • 定期空间泄露扫描

9. 进阶技巧:lsof 与其他工具的组合使用

9.1 结合 awk 进行数据分析

BASH
# 找出占用空间最大的前10个已删除文件
lsof +L1 2>/dev/null | awk '
$7 ~ /^[0-9]+$/ {
size[$2] = $7 # 按PID记录大小
cmd[$2] = $1 # 记录命令名
file[$2] = $9 # 记录文件名
}
END {
for (pid in size) {
printf "PID: %-6s CMD: %-10s SIZE: %10d MB FILE: %s\n",
pid, cmd[pid], size[pid]/1024/1024, file[pid]
}
}' | sort -k6 -nr | head -10

9.2 实时监控脚本

BASH
# !/bin/bash
# real_time_monitor.sh
 
# 监控特定进程的文件打开情况
MONITOR_PID=$1
 
if [ -z "$MONITOR_PID" ]; then
echo "Usage: $0 <pid>"
exit 1
fi
 
echo "开始监控进程 $MONITOR_PID 的文件打开情况..."
watch -n 5 "lsof -p $MONITOR_PID | grep -E '(REG|DIR)' | awk '{print \$5,\$7,\$9}' | sort | uniq -c | sort -nr"

9.3 容器环境下的特殊处理

在 Docker 环境中,需要在宿主机上排查:

BASH
# 查找容器进程在宿主机上的PID
docker inspect --format '{{.State.Pid}}' container_name
 
# 查看容器进程打开的文件
lsof -p <container_pid> | grep deleted

掌握 lsof 命令的真正价值不在于记住所有参数,而在于理解其背后的原理和适用场景。当磁盘空间出现异常时,能够快速想到使用 lsof 来排查被删除但仍被占用的文件,这本身就是运维能力的重要体现。

建议将本文中的脚本和命令保存到本地,在真正遇到问题时快速参考使用。更重要的是,建立预防性的监控体系,在问题发生前就能发现苗头,这才是高水平的运维实践。

Docker逃逸原理与防御实战:从容器隔离到进程泄露处置
本文系统解析Docker逃逸的核心原理,涵盖Namespaces、Cgroups、Capabilities等隔离机制的局限性,深入剖析特权模式、Docker Socket挂载、内核漏洞(如CVE-2019-5736)等主流逃逸路径,并结合sh进程泄露这一典型场景,提供检测、处置、加固及企业级容器安全防护体系建设方案,强调运行时监控、Seccomp策略、最小权限原则持续安全左移实践。
?Briella
413
Linux安全排查实战:从靶场搭建到入侵检测的完整指南
本文构建可复现的Linux安全靶场环境(如Ubuntu 22.04),预置恶意进程、异常监听、SUID文件、可疑计划任务等典型攻击痕迹,并系统性演示四阶段排查流程系统健康快照、进程网络深度分析、文件权限精细扫描、用户日志持久化审查;配套决策树指导修复,强调基线对比、证据保全常态化巡检机制,覆盖strace、tcpdump、auditd、rkhunter等关键安全工具。
weixin_36250541
341
深入理解Linux loop设备从ISO挂载到容器存储,/dev/loop0-6 100%背后的原理与排查
易行男·龙大崇
287
Linux服务器健康诊断top、netstat、du三剑客实战指南
本文深入解析top、netstat(及替代工具ss)和du在Linux服务器健康诊断中的协同应用逻辑。聚焦CPU异常、磁盘空间告警网络连通性故障三大典型场景,强调基于内核数据源的交叉验证方法top定位高负载进程,netstat/ss分析连接状态端口绑定,du精准识别磁盘占用根源。同时澄清内存统计差异、TIME_WAIT本质、dudf偏差等常见误区,并提供轻量、确定、最小依赖的现场排障实践框架。
weixin_34009794
533
Linux文件夹加密实战指南eCryptfs、LUKS、VeraCrypt方案对比部署
本文系统对比eCryptfs、LUKS和VeraCrypt三种Linux文件夹加密方案,涵盖原理差异(文件系统级vs容器级)、适用场景(个人目录/跨平台容器/块设备加密)、密钥管理最佳实践、自动化挂载配置及常见故障排查。重点强调密钥安全、算法选择(AES-256+AES-NI)、文件名加密启用、多密钥槽备份等核心技术要点,适用于运维个人用户。
weixin_30902251
483
CentOS 6 手动搭建 LAMP 环境:原理、安全排障实战
本文详解在已停止维护的 CentOS 6 系统上,通过 YUM 源码混合方式手动部署 LAMP(Linux+Apache+MySQL+PHP)环境的全过程。涵盖系统初始化、Apache 安全配置、MySQL 权限加固、PHP 源码编译模块集成、全链路联调验证及典型故障排查(如 Connection refused、SELinux 403、日志不释放等)。强调原理理解、安全加固生产级排障能力,拒绝一键脚本,聚焦底层服务协同机制。
weixin_30256901
399
服务器异常排查:5分钟快速检测Rootkit入侵应急响应指南
本文聚焦服务器Rootkit入侵的快速识别处置,以chkrootkit为核心工具,详解其安装、扫描参数优化及结果解读方法;强调基于命令行为异常、资源占用突增、日志缺失等迹象的初步判断,并辅以手动交叉验证(如ps/netstat对比、/proc检查、SUID文件排查、内核模块审计);最后给出确认入侵后的‘四不’应急原则、取证要点及系统重建加固方案,突出最小干扰、快速取证、深度验证的信息安全响应逻辑。
weixin_34110749
511
Ivanti EPMM高危漏洞深度剖析从预认证RCE到立体化防御实战
本文深入剖析Ivanti EPMM中CVE-2026-1281(预认证身份绕过)和CVE-2026-1340(Java反序列化RCE)构成的高危攻击链,详细拆解其利用路径从绕过认证获取会话,到投递恶意序列化载荷实现远程代码执行并获得root权限。文章涵盖影响评估、黄金4小时应急响应(网络隔离、入侵排查)、官方补丁应用流程及纵深防御体系构建(WAF规则、最小权限、日志审计、HIDS部署),强调预认证RCE对移动设备管理平台的灾难性威胁。
黄小二哥
387
CentOS 8用户管理从vm安装到生产级生命周期管控
本文深入解析CentOS 8 Stream环境下用户创建、权限控制、安全删除及审计清理的全流程。重点涵盖UID/GID规划、SELinux上下文修复、systemd会话清理、PAM策略适配、sudo最小权限设计,以及批量纳管高安全场景下的离职审计实践。强调CentOS 7的关键差异,如adduser行为变更、userdel残留风险、visudo校验机制和Enforcing模式必要性。
weixin_34248487
381
Ubuntu 20.04服务器初始化五步安全加固指南
本文系统阐述Ubuntu 20.04服务器首次上线必须执行的五项安全加固操作创建受限sudo权限的专属用户、启用SSH密钥认证并禁用密码登录、配置ufw防火墙实施默认拒绝策略、执行APT安全更新基线校验、生成可审计初始化报告及密钥备份。强调防御纵深模型最小权限原则,拒绝黑盒一键脚本,聚焦权限控制(setuid位、sudoers细粒度配置)、网络边界收敛(源IP限制的ufw规则)和可验证实操流程。
banglvfei0870
466
2023年Linux系统管理员工具包监视磁盘空间使用情况.doc
资源摘要信息: 本文档《2023年Linux系统管理员工具包监视磁盘空间使用情况》是一份面向中高级Linux/UNIX系统管理员的实战型技术指南,聚焦于磁盘空间生命周期管理的核心环节——监控、诊断、归因与预防。其核心价值不仅在于介绍df、du、find等基础命令的语法用法,更在于构建一套可复用、可扩展、跨平台(兼容Linux、BSD、macOS等类UNIX系统)的磁盘健康运维体系。文档开篇即强调“文件系统未填满”这一看似简单的状态,实则是保障系统稳定性、服务连续性、数据安全性和性能基线的底层基石;一旦根分区(/)或关键挂载点(如/var、/home、/opt)耗尽空间,将直接导致日志写入失败、服务崩溃、数据库拒绝连接、SSH登录异常、甚至内核OOM Killer强制终止进程等连锁故障。因此,磁盘空间管理绝非被动响应式操作,而必须是主动化、指标化、预警化的基础设施治理工程。在技术纵深层面,文档系统性地解构了三大核心命令的协同逻辑高阶技巧df(disk free)作为全局视图入口,不仅提供各文件系统的总容量、已用/可用字节数及挂载点信息,更通过`-h`(人类可读)、`-i`(inode使用率)、`-T`(文件系统类型)、`--output=`(定制字段输出)、`-x`(排除特定类型如tmpfs)等参数实现多维透视;尤其需警惕的是,df显示的“可用空间”受reserved blocks(默认5%为root保留)影响,普通用户可能遭遇“df显示仍有空间但write失败”的现象,此时需结合`dumpe2fs -h /dev/sdXn | grep -i "block count\|reserved"`验证。du(disk usage)则承担细粒度归因分析职责,支持按目录层级递归统计(`du -sh * | sort -hr | head -20`快速定位TOP20大目录),配合`-c`(汇总)、`--max-depth=N`(限制深度)、`-a`(列出所有文件)及`--exclude`实现精准排查;值得注意的是,du统计基于文件实际占用块数,不受硬链接重复计数干扰,但会包含被删除但仍被进程打开的“幽灵文件”(lsof + /proc/*/fd可识别)。find命令则突破静态快照局限,赋能动态策略管控`find /var/log -name "*.log" -mtime +30 -delete`实现日志自动清理;`find /tmp -type f -atime +7 -delete`回收陈旧临时文件;`find /home -size +100M -ls`定位超限用户文件;更可结合-execxargs构造管道化批量操作链。三者组合技如`df -h | awk '$5 > 85 {print $1}' | xargs -I {} sh -c 'echo {}; du -sh /* 2>/dev/null | sort -hr | head -5'`,即可实现“自动发现高危分区→逐级下钻定位罪魁目录”的闭环诊断。文档进一步延伸至企业级治理维度配额(quota)机制通过`quotacheck`、`quotaon`、`edquota`、`repquota`等工具,在ext4/xfs等文件系统上实施用户/组级磁盘限额(block limit)inode限额(file limit),并支持软限(grace period内可临时超限)硬限(绝对禁止写入)双策略;配合`warnquota`可邮件告警,`quota_nld`守护进程支持NFS配额同步。此外,文档隐含推荐了自动化监控范式利用cron定时采集df/du数据写入时间序列数据库(如InfluxDB),通过Grafana构建磁盘使用率趋势图、增长率预测模型及容量预警看板;或采用Prometheus+Node Exporter指标采集方案,基于`node_filesystem_avail_bytes`等指标设置PromQL告警规则(如`1h内增长率>5%/h且剩余空间<10GB`)。对于容器化环境,还需关注overlay2存储驱动的层叠式磁盘占用、Docker Builder缓存膨胀、Kubernetes EmptyDir卷泄露等问题,需叠加`docker system df`、`crictl df`等专用工具。综上,该文档本质是一部融合命令行艺术、系统原理认知、运维哲学思辨自动化工程实践的综合性技术手册,其方法论对构建高可用、可观测、可治理的现代Linux基础设施具有不可替代的指导意义。
平头哥在等你
linux服务器磁盘空间满了如何排查,有哪些思路
本文介绍了Linux服务器磁盘空间满时的排查方法和解决思路。首先,使用df -h命令查看磁盘使用情况,然后用du命令分析目录大小,lsof命令查找已删除但未释放的文件。接着,检查业务文件、系统盘分配、分析磁盘占用,考虑Docker容器的问题。最后,设置日志轮转、定期清理旧文件,或扩展磁盘分区来预防未来的问题。
杨紹-sky
Linux中出现“No space left on device”错误的排查与解决方法
以下是对这个错误的排查和解决方法的详细说明。首先,当遇到这个错误时,应该检查当前系统的磁盘空间使用情况。可以使用`df`命令来查看磁盘的总空间、已使用空间、剩余空间以及使用率。
weixin_38734037
4471
lsof +L1 | grep deleted
本文旨在帮助用户解决在Redash或PostgreSQL环境中,查找并安全释放已被删除但仍被进程占用的文件的问题。文章首先介绍了如何使用lsof命令组合来定位这些文件,然后详细说明了Redash和PostgreSQL中常见的占用文件类型,并提供了空间回收验证方法。接着,文章给出了安全释放操作的推荐流程和PostgreSQL专用方法。最后,文章还提供了预防措施和注意事项,以及相关问题的解答。
xcwchaowei
Linux磁盘空间被‘幽灵文件’占满?手把手教你用lsof+truncate彻底清理(附排查流程图)
楚雨馨
Linux磁盘空间异常排查:dfdu结果不一致的深度解析
CHM单
Linux磁盘空间异常排查:当dfdu结果不一致时的深度解析
鲸吃瓜
Linux系统日志故障排查
# 1. 导言## 1.1 介绍Linux系统日志的重要性在Linux系统中,日志是系统运行和故障排查的重要依据。通过日志记录,我们可以了解系统的运行状态、应用程序的运行情况、系统事件的发生以及可能的故障原因。日志记录不仅有助于及时发现问题并进行故障排查,也是系统运维和安全性监控的重要手段。## 1.2 日志对系统故障排查的作用日志记录是排查系统故障的关键方式之一。借助系统日志,我们可以快速定位故障原因,有针对性地进行故障排查和修复,提高了故障排查的效率和准确性。同时,积累和分析日志还有助于发现系统潜在的问题,预防未来可能发生的故障。以上是对文章的章节提取,接下来为您呈现文
sun海涛
Linux 文件移动 磁盘还是100%
Linux系统中,文件移动后磁盘空间显示为100%利用率的问题,通常由于文件被进程占用或未跨分区移动导致。本文提供了查找并终止占用文件的进程、确认文件移动是否跨分区、清理未释放的磁盘空间、检查磁盘使用差异和清理临时文件日志等解决方案,并建议了预防措施。
weixin_49106676
linux no space left on device 怎么解决
本文详细介绍了Linux系统中出现的“no space left on device”错误的两种常见原因:磁盘空间不足和inode耗尽,并提供了相应的诊断和解决方案。包括如何检查磁盘和inode使用情况、清理大文件和目录、处理已删除文件但未释放空间的情况,以及预防措施如日志轮转和监控设置。
紫月挽枫