在Linux服务器上查看磁盘大小,最核心的答案就是使用df -h命令查看文件系统占用,lsblk命令查看物理磁盘容量,du -sh命令查看具体目录大小。记住这三个命令,你就能解决绝大多数磁盘排查场景,下面我结合实际运维操作,把各种查看磁盘的招数一次讲透。
linux查看磁盘空间命令有哪些
很多朋友刚接触服务器时,总习惯用图形界面“我的电脑”看硬盘,到了Linux纯命令行的环境就懵了,其实Linux下的磁盘查看命令非常直观,只是需要你换个思路:系统里一切皆文件,磁盘也是一个设备文件,我们主要靠df、du、lsblk、fdisk这四个命令来摸清家底。
df -h 快速查看已挂载分区使用量
当你登录服务器后,第一件事想知道“硬盘塞了多少东西”,用df -h最直接。df是“disk free”的缩写,-h参数表示以人类易读的GB、MB为单位输出。
df -h
执行后你会看到类似下面的输出:
| 文件系统 | 容量 | 已用 | 可用 | 已用% | 挂载点 |
|---|---|---|---|---|---|
| /dev/sda1 | 40G | 23G | 15G | 61% | |
| /dev/sdb1 | 200G | 150G | 50G | 75% | /data |
| tmpfs | 8G | 0 | 8G | 0% | /dev/shm |
这个命令展示的是“逻辑视图”,也就是系统当前实际挂载使用的情况,其中挂载点这一列最值得关注,如果根分区的已用%达到85%以上,就该考虑清理日志或扩容了,行业共识认为,磁盘使用率超过80%时,文件碎片化会加剧,数据库性能可能明显下降。
lsblk 查看物理磁盘和分区结构
df命令看不到未挂载的磁盘或分区,这时候需要lsblk(list block devices)出场,它会以树状结构列出所有块设备,相当于物理磁盘的总账本。
lsblk
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part /
sdb 8:16 0 500G 0 disk
└─sdb1 8:17 0 500G 0 part /data
这里SIZE列直接标明了物理磁盘总容量,比如sda是100G,sdb是500G,如果新加了一块硬盘但没分区格式化,lsblk能看到vdb或sdc出现在列表里,但df里没有对应记录,所以当你在简米云或酷番云上挂载了云盘却发现用不了,先跑一下lsblk准没错。
fdisk -l 查看磁盘详细信息
如果你想看得更细,比如磁盘的分区表类型、起始扇区、文件系统类型,可以用fdisk -l,注意这个命令可能需要root权限。
sudo fdisk -l
它会列出每个磁盘的详细参数,包括磁盘标识符、扇区数量、扇区大小等,对于普通运维排查来说,lsblk已经足够,fdisk -l更多用在分区规划场景。
深入目录排查linux磁盘占用占比
知道总容量后,最头疼的问题通常是:到底是哪个目录把磁盘吃满了? 这时候du命令是你的放大镜。
du -sh 定位大目录
du是“disk usage”的缩写,-s表示汇总,-h表示人类可读,先看根目录下哪个一级目录最大:
sudo du -sh /
这条命令会逐个统计下面每个文件夹的总大小,执行速度取决于文件数量,列出结果后,挑占用最大的那个目录继续深入,比如发现/data占了80G,那就接着查:
sudo du -sh /data/
逐步缩小范围,用“二分法”快速定位罪魁祸首,这个过程虽然朴素,但非常有效。Linux排查磁盘占用,本质上就是从根开始,逐层剥洋葱。
du -h –max-depth 控制统计层级
如果你不想一层层敲命令,可以用--max-depth参数指定递归深度,比如直接查看根目录下2层以内的所有目录大小:
sudo du -h --max-depth=2 / | sort -hr | head -20
这里sort -hr表示按数字大小倒序排列,head -20只取前20行,据说这套组合拳是运维老手最常用的“磁盘大扫除”起手式,一次命令就能锁定可疑目录。
统计某个具体项目的大小
当你怀疑是某个应用目录占用,直接对目标路径执行:
sudo du -sh /var/log/nginx sudo du -sh /home/user/backup
结果会直接告诉你这个目录总共多大。可以说,du命令是中国服务器管理员排查磁盘满问题时的第一利器。
生产环境实战:linux磁盘满了怎么处理
服务器磁盘满是个折磨人的事故,网站打不开、数据库报错、SSH登录卡顿,这些症状背后往往就是df -h一看,根目录100%,遇到这种情况,按下面三步走。
用find命令揪出超大文件
du看目录,find找文件,查找下大于1GB的普通文件:
sudo find / -type f -size +1G -exec ls -lh {} \;
这个命令会遍历全盘,找出超过1GB的大文件,常见的大文件包括:Nginx日志、Tomcat的catalina.out、MySQL的binlog、Docker的容器日志.json、以及用户上传的临时备份包。
清理systemd日志和临时文件
journald的系统日志是隐藏磁盘杀手,查看日志占用:
journalctl --disk-usage
如果发现日志占了好几GB,清理到只保留最近3天:
sudo journalctl --vacuum-time=3d
/tmp目录和/var/tmp下的临时文件可以直接删除,/var/cache/apt/archives里的软件包缓存(Debian系)也能安全清理。据统计,运维人员日常处理的磁盘告警中,日志文件贡献了相当一部分的现场。
查找被删除但未释放空间的文件
这是Linux系统特有的现象:进程还在往一个已删除的文件里写数据,空间被占用但du查不到,用lsof检查:
sudo lsof | grep deleted
找到对应进程后,重启或kill该进程,空间就会自动释放,在你按du清了一堆文件却发现df没变化时,八成就是这种情况,业内专家指出,这类问题在删除大文件后磁盘占用率依然不减的场景中尤为常见。
linux查看磁盘挂载情况和工作原理
理解了磁盘如何被系统组织起来,你才能更从容地应对容量问题,Linux磁盘管理体系分三层:
- 物理磁盘:只要接通电源和线缆,系统就能通过
lsblk识别到,对应/dev/sda、/dev/sdb等。 - 分区:物理磁盘通过
fdisk或parted切割成逻辑区域,分区号为sda1、sda2。 - 文件系统与挂载:分区格式化(如ext4、xfs)后,通过
mount命令挂载到某个目录,系统才能读写文件。
用mount命令可以查看当前所有挂载点的文件系统类型:
mount | grep -v tmpfs
关注/etc/fstab文件,它定义了系统开机时的自动挂载规则,如果你的新数据盘重启后消失,多半是没写进这个文件,这一套完整流程,市面上很多Linux运维基础教程里都叫它“磁盘管理的黄金链路”。
Linux查看服务器物理磁盘总容量和型号
有时候你不仅想知道用多少了,还想知道这台机器物理上到底接了几块盘、每块盘多大、是机械盘还是固态盘,用lshw和smartctl可以获取硬件级信息。
查看磁盘型号和类型
sudo lshw -class disk
输出会列出设备的product(型号)、vendor(厂商)、size(容量),比如能看到“Samsung SSD 970 EVO 500GB”这样的信息,判断是固态还是机械,主要看型号里是否有SSD、NVMe等字样,或者参数里有“Rotation Rate”字段(机械盘会有5400rpm、7200rpm标记,固态盘没有这一项)。
查看RAID阵列信息
如果服务器做了磁盘阵列(RAID),比如戴尔R740或惠普DL380这类企业级设备,系统层面直接看到的可能是一块“虚拟盘”,需要借助megacli或perccli工具查看底层物理磁盘状态:
sudo megacli -PDList -aALL
你可能会问linux怎么看服务器磁盘有多大是直连盘还是阵列逻辑盘,用这个命令就能看到后端挂了4块或8块物理盘,也能确认是否有盘处于降级状态。这一步在高可用生产环境中至关重要,因为RAID磁盘故障如果不提前发现,意外掉盘可能会导致整站瘫痪。
常见问题快速解答
为什么我云服务器买的是100G硬盘,df -h显示只有99G?
这是正常的容量换算差异,云厂商宣传的100G是十进制(100,000,000,000字节),而Linux用二进制计算(约93.1GiB),加上系统保留块和分区表开销,实际显示少几个G完全正常,以酷番云轻量应用服务器为例,官网标称100G,df -h看到的总和大约在92G至99G之间,都在合理范围。
linux查看磁盘空间命令中i节点是什么?
在df -i命令里,系统还会显示inode使用率。
df -i
inode是文件元数据存储结构,如果你的服务器存了大量小文件(比如程序生成的上百万个缓存文件),磁盘空间没满但inode耗尽,系统同样会提示“No space left on device”,这时需要清理旧文件而不是扩容。
磁盘扩容后系统没有识别怎么办?
如果你在云控制台或物理机上加了磁盘,但Linux里看不到新容量,先让系统重新扫描接口:
echo 1 > /sys/block/sda/device/rescan
对于虚拟化平台如VMware或KVM,可能需要重启虚拟机才能识别,新磁盘识别后,依次执行fdisk分区、mkfs.ext4格式化、mount挂载三步,才能正常使用。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/774949.html


