Linux服务器怎么看剩余磁盘空间?,磁盘满了怎么办?

查看Linux服务器剩余磁盘空间,最直接的命令是df -h,它会以人类可读的格式显示每个分区的容量、已用、可用和挂载点。 但“怎么看”只是第一步,真正棘手的是磁盘满了之后怎么定位大文件、怎么安全清理,下面按排查顺序拆开讲。

linux服务器查看磁盘空间用什么命令最快

df -h 与 df -i 各司其职

df -h 是绝大多数场景下的首选。-h 参数自动把字节数换成 GB、MB 这种易读单位,执行后第一眼看到的是文件系统名字,然后是总容量、已用、可用、使用率百分比,最后是挂载点。

Linux服务器磁盘占满怎么解决?
加载中
Linux服务器磁盘占满怎么解决?

如果要看 inode 使用情况,用 df -i,很多时候磁盘空间还有,但 inode 耗尽,照样报“空间不足”,常见于小文件特别多的目录,比如邮件队列或缓存目录。

读懂一行输出

以 /dev/sda1 50G 30G 20G 60% / 为例,50G 是总容量,30G 已用,20G 可用,60% 是使用率,注意“可用”这一列有时会被保留块影响,所以不用纠结为什么总容量减已用不等于可用,保留块是文件系统为 root 用户预留的空间,默认占 5%,作用是防止日志或关键进程写满后连登录都做不到。

df 常用参数对比

参数 作用 使用场景
-h 人类可读单位 日常查看
-i 查看 inode 磁盘没满但报错时
-T 显示文件系统类型 排查分区格式
-x 排除指定类型 跳过 tmpfs 等虚拟文件
-P 输出格式不换行 脚本解析结果时

只看某个挂载点的剩余空间

用 df -h / 或者 df -h /var,如果服务器上挂载了数据盘,/data,那就用 df -h /data,这样输出只有一行,不会把 proc、sys 这些虚拟文件系统混进来,虚拟文件系统的数据在内存里,不算真正的磁盘占用,看了反而干扰判断。

为什么不用 fdisk 或 lsblk

fdisk -l 查看的是磁盘分区的物理大小,不代表分区已经使用的空间。lsblk 只能看到设备树和容量,看不到“剩余多少”,它们适合看磁盘有没有被正确识别,不适合回答“还剩多少空间”。

磁盘满了但不知道怎么排查?用 du 命令定位大文件

当你执行 df -h 发现某个分区 100% 了,下一步就是找具体是哪个文件占的空间。du 命令是核心工具。

du -sh 和 du -sh 的区别

  • du -sh 目录 显示这个目录的总大小。
  • Linux服务器怎么看剩余磁盘空间?,磁盘满了怎么办?

  • du -sh 显示当前目录下每个子项的大小,方便逐级比较。

在 /home 下执行 du -sh | sort -hr,如果看到某个用户目录异常大,就进去继续筛,用 du -ah 可以同时显示文件和目录,但输出太多,建议用顶层目录筛选。

一个常见的误区是用 ls -lh 查看文件大小,它只能看单层目录,不能递归统计,所以不适合定位占满磁盘的罪魁祸首。

查找单个大文件

find / -type f -size +500M -exec ls -lh {} ; 这条命令会搜索整个根目录下大于 500MB 的文件,注意开头限制范围,/var、/home,否则会扫很久,如果想扫得干净又不跨文件系统,加 -xdev 参数,只搜索当前挂载点内的文件。

高效排序法

把 du 和 sort 组合起来:

du -ah . 2>/dev/null | sort -rh | head -30

这条在几十 GB 的数据目录下也能快速列出最大的前 30 个文件,多数情况下,最大的那一个就可以解释磁盘为什么会满。

检查被删除但未释放空间的文件

有个经典情况:文件被 rm 了,但空间没释放,因为某个进程仍然持有它的文件描述符。lsof +L1 可以列出所有被删除但仍然打开的文件,看到后,重启对应进程即可,排查流程:df -h 发现满 –> lsof +L1 找到进程 –> 重启进程或服务,如果你发现 du -sh / 统计出来的总量比 df -h 显示的小,多半就是这个问题。

用 ncdu 做交互式分析

如果你不想一条条敲命令,可以安装 ncdu,它把目录大小做成可视化的界面,方向键进入目录,回车筛选,删除文件也方便,Debian/Ubuntu 用 apt install ncdu,CentOS 用 yum install ncdu,注意需要 root 权限才能读其他用户的目录。

linux服务器磁盘空间不足怎么清理最安全

磁盘使用率超过 80% 就该检查了,行业共识认为,长期高使用率会显著增加日志写满、临时文件爆掉的风险,清哪些,取决于你的业务形态。

先定位占用空间的大头

不要凭感觉删文件,用 du -sh / 2>/dev/null 查看根目录下每个一级子目录的大小,注意这里用了 2>/dev/null 把权限不足的报错丢掉了,如果某个目录特别大,再进去逐层排查。

快速找出占用磁盘最多的目录

命令套路是:

du -sh /var/log /var /tmp /home 2>/dev/null

或者配合 sort -h 按大小排序:

Linux服务器怎么看剩余磁盘空间?,磁盘满了怎么办?

du -sh /var/ 2>/dev/null | sort -hr | head -20

这样能一眼看到哪几个目录吃掉了大部分空间,常见元凶是日志、数据库备份、临时文件、容器镜像。

清理日志文件,别急着删

系统日志和 Nginx、Tomcat 这类应用日志增长很快,先看有没有自动轮转。rsyslog 配置在 /etc/logrotate.d/ 下,如果日志已经很大,可以手动清理,但别直接 rm 正在被进程打开的日志文件,否则空间不会真正释放。

正确做法是 truncate -s 0 /var/log/syslog,把文件清空而不是删除,这样进程依然持有文件描述符,空间立刻释放。

清理 journald 日志

journalctl --disk-usage 查看 systemd 日志占用,保留最近 7 天:

journalctl --vacuum-time=7d

这条命令不会影响正在运行的服务,如果系统日志量大,也可以直接限制 journal 文件总大小,改 /etc/systemd/journald.conf 里的 SystemMaxUse=100M,改完重启 systemd-journald。

包管理器缓存和临时文件

Debian/Ubuntu 系统用 apt-get clean 清理下载的 deb 包,CentOS/RHEL 用 yum clean all。/tmp 目录在重启后一般会被清,但长期跑着的服务器不会主动清,需要手动删除长时间没更新的临时文件,可以用 find /tmp -type f -atime +7 -delete,谨慎起见先看看有哪些文件。

删除无用的旧内核

内核升级后,旧内核包一直占着 /boot 空间,用 uname -r 查看当前内核版本,然后用 dpkg --list | grep linux-image(Debian 系)确认哪些旧内核可以卸载,CentOS 下用 package-cleanup --oldkernels --count=2,建议保留当前版本及上一个版本,防止新内核出问题无法回退。

Docker 相关的额外占用

如果你在服务器上跑容器,Docker 的镜像、容器层和日志随时会填满磁盘,先执行 docker system df 查看各类资源占用。

  • 删除悬空镜像:docker image prune
  • 清理无用的构建缓存:docker builder prune
  • 限制容器日志大小,在 /etc/docker/daemon.json 里加 "log-opts": {"max-size": "10m"},然后重启 Docker

数据库和备份文件单独处理

如果是 MySQL 或 PostgreSQL 的服务器,二进制日志和备份文件往往占空间大头,数据库二进制日志用 PURGE BINARY LOGS BEFORE NOW() 清理,具体方式取决于配置,备份文件建议压缩后按周期删除,不要全部堆在磁盘上,建议给备份单独挂一个大容量分区,避免和系统分区挤在一起。

监控磁盘空间,防止下次爆满

Linux服务器怎么看剩余磁盘空间?,磁盘满了怎么办?

不用等到满了才查,在服务器上放一个简单的脚本,用 cron 定时跑。

写一个磁盘告警脚本

思路是:检查每个分区的使用率,超过阈值(80%)就发送邮件或输出到日志,脚本内容大致如下:

#!/bin/bash
threshold=80
df -h | awk '{print $5, $6}' | grep -v 使用率 | while read usage partition; do
  percent=${usage%%}
  if [ "$percent" -gt "$threshold" ]; then
    echo "$partition 使用率 $percent%" >> /var/log/disk_warning.log
  fi
done

然后用 crontab 每小时执行一次:crontab -e 添加 0 /usr/local/bin/disk_check.sh,注意脚本加上执行权限,也可以把告警消息通过 mailx 发送,或者写入到监控平台。

定期对比,发现异常增长

除了按固定周期清理日志,还可以用 du 生成历史大小记录,对比两天的差值,找出异常增长的目录,如果你手头有监控工具如 Zabbix、Prometheus,直接在图上看到趋势,比手动跑命令更省心,对云服务器,多数厂商也会自带磁盘监控,但自建脚本对任何机器都通用。

linux服务器磁盘空间相关常见问题解答

问题 1:df 显示的磁盘空间和 du 统计的不一致怎么回事?

df 查看的是文件系统层面的块使用情况,du 统计的是文件内容占用的空间,被删除但未释放的文件、文件系统元数据、保留块等都会造成差异,先执行 lsof +L1 排查被删文件,如果没有结果,一般是保留块或预分配空间的原因,多数情况下不需要处理。

问题 2:查看 linux 服务器磁盘空间时,inode 满了是什么意思?

inode 是文件系统存储文件元信息的位置,每个文件或目录都需要一个 inode,当磁盘还剩余空间但 inode 用完时,新文件无法创建,用 df -i 查看使用率,常见于消息队列、临时文件、缓存目录,解决办法是清理超量的小文件,find /目录 -type f -size 0 -delete 删除空文件,再检查是否有程序频繁创建小文件。

问题 3:/dev/sda1 100% 满了,怎么找到具体是哪个文件?

先用 df -h 确认挂载点,再进入该目录使用 du -sh | sort -hr 逐层排查,如果嫌麻烦,直接用 find / -xdev -type f -size +1G -exec ls -lh {} ;,-xdev 限制只搜索当前文件系统,速度更快,找到文件后根据文件类型决定是否删除或归档。

记住核心并非查看命令,而是建立一套从发现、定位到清理的流程。df -h 是入口,du 是放大镜,定期监控才是避免磁盘写满的安心方案。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/linux%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%80%8e%e4%b9%88%e7%9c%8b%e5%89%a9%e4%bd%99%e7%a3%81%e7%9b%98%e7%a9%ba%e9%97%b4%ef%bc%9f%ef%bc%8c%e7%a3%81%e7%9b%98%e6%bb%a1%e4%ba%86%e6%80%8e%e4%b9%88%e5%8a%9e/

赞 (0)
简米云服务器如何屏蔽IP?,IP封禁方法有哪些?
上一篇 2026年10月11日 10:10
服务器Linux系统安装失败怎么办,原因及解决方法?
下一篇 2026年10月11日 10:13

相关推荐

  • 时序数据库标签基数膨胀为何拖慢存储压缩效率?,如何解决?

    时序数据库标签基数膨胀会直接拖慢存储压缩效率——高基数标签破坏字典编码和倒排索引的重复性,让压缩算法失去可压缩的局部模式,时序数据库标签基数怎么优化:先搞懂它如何拖慢压缩时序数据库里的标签(tag)和字段(field)分工本该很清晰,标签负责把数据切分成可检索的分组,字段负责存储随时间变化的值,低基数标签像“机……

    2026年9月10日
    400
  • 广州轻量应用服务器实例类型有哪些?广州轻量服务器实例怎么选

    2026年广州轻量应用服务器实例类型的选择,核心在于匹配业务场景与网络质量:入门共享型适合个人建站,独享计算型支撑中小微企业高并发,而本地SSD型则专为广深低延迟电商与游戏场景打造,2026年广州轻量应用服务器实例类型全景解析入门共享型(基础计算场景)核心定位:轻负载、低流量场景的破冰首选,资源配比:CPU采用……

    2026年4月27日
    5600
  • aspx文件怎么修改

    修改ASPX文件需要系统掌握其双文件结构(.aspx前端页面 + .aspx.cs/.aspx.vb后端逻辑)和ASP.NET Web Forms框架特性,核心操作步骤如下:理解ASPX文件的核心结构页面指令层首行<%@ Page %>指令控制编译行为,<%@ Page Language=&q……

    2026年2月6日
    12630
  • 我的世界神奇宝贝服务器op如何改6v?,6v怎么获得

    我的世界神奇宝贝服务器OP改6v指令详解在我的世界神奇宝贝服务器中,OP可以通过服务端插件或指令直接修改宝可梦个体值为6v,具体操作依赖于服务器所用的模组和插件版本, 如果你是服务器管理员,掌握这个技能不仅能满足玩家需求,还能高效管理服务器生态,下面直接进入实操环节,什么是6v以及为什么OP需要掌握这个技能在宝……

    2026年8月2日
    1400
  • 服务器1g内存是多少?1g内存服务器够用吗

    服务器1g内存是指服务器主机拥有的随机存取存储器(RAM)容量为1024兆字节(MB),在当前云计算和服务器技术迭代背景下,这属于极低配置资源,仅具备基础的数据吞吐能力,无法支撑现代动态网站或企业级应用的稳定运行,其实际价值主要体现在特定微服务、内部测试环境或极低并发的静态资源托管上,核心结论:服务器1g内存代……

    2026年4月10日
    6400
  • AI识别是如何实现的,AI识别技术原理是什么

    AI识别技术本质上是利用深度学习算法模拟人类感知系统,通过海量数据训练构建数学模型,从而实现对图像、声音或文本的自动分类与理解,其核心在于特征提取与模式匹配,将非结构化数据转化为计算机可处理的数字信号,最终输出高精度的识别结果,这一过程并非简单的像素比对,而是基于多层神经网络对数据内在逻辑的深度解析, 核心技术……

    2026年2月23日
    17700
  • Win10无法登录云服务器怎么办,原因是什么?

    当你遇到Win10无法登录云服务器时,首先检查网络连通性,然后确认远程桌面服务是否开启,接着排查云服务商的安全组规则,最后尝试更新本地凭据或使用其他客户端工具,按照这个顺序绝大多数连接问题都能解决,Win10远程桌面连不上云服务器?先排查网络连通性检查本机与外网通信远程连接的第一步是确保你的Win10和云服务器……

    2026年8月12日
    900
  • ajax在php中怎么操作数据库?php连接mysql数据库教程

    Ajax在PHP数据库交互中的核心优势在于实现无刷新数据更新,通过异步请求显著提升用户体验并降低服务器负载,是构建现代Web应用的基础技术组合,在传统的Web开发模式中,用户每次操作都需要重新加载整个页面,这种体验在2026年的互联网环境下显得过于笨重,随着前端框架和后端架构的演进,Ajax(Asynchron……

    2026年5月30日
    4000
  • BitsFlowCloud年付VPS多少钱?日本香港CN2三网优化线路VPS推荐

    BitsFlowCloud用户突破3K,周年庆促销力度空前,东京/香港/法兰克福等多地可选,年付低至79元起,是2026年高性价比国际VPS首选,在2026年的网络环境中,稳定且高速的国际连接依然是许多开发者和内容创作者的核心刚需,BitsFlowCloud近期宣布用户规模突破3000人,并借此契机推出周年庆促……

    2026年7月7日
    10300
  • 为什么苹果6s打开数据连接服务器失败,怎么办?

    苹果6s打开数据连接提示服务器失败,绝大多数情况是由网络设置异常、运营商APN配置错误、系统版本过旧或蜂窝数据网络参数错误引起的,通过还原网络设置、手动更新APN或重新插拔SIM卡即可解决,为什么苹果6s会提示“数据连接服务器失败”?苹果6s作为一款服役多年的机型,在蜂窝数据连接上出现服务器失败提示,通常不是硬……

    2026年7月24日
    2200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注