ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Linux磁盘管理:从基础命令到高级监控技巧

2026/8/15 8:25:09 拓冰建站 浏览量
Linux磁盘管理:从基础命令到高级监控技巧 1. Linux磁盘信息查看方法概述在Linux系统管理中磁盘信息查看是最基础也是最重要的操作之一。无论是系统管理员还是普通开发者都需要经常检查磁盘使用情况、分区信息以及文件系统状态。掌握这些基础命令不仅能帮助我们快速定位存储问题还能有效预防磁盘空间不足导致的系统故障。我管理Linux服务器十多年来见过太多因为忽视磁盘监控而导致的严重事故——从简单的服务崩溃到关键数据丢失。实际上这些悲剧完全可以通过几个简单的命令避免。本文将详细介绍Linux下查看磁盘信息的各种方法包括基础命令、高级用法以及实际工作中的经验技巧。2. 基础磁盘信息查看命令2.1 df命令文件系统磁盘空间使用情况df(disk filesystem)是最常用的磁盘空间查看命令。基本用法很简单df -h这里的-h参数表示以人类可读的格式显示自动转换为KB、MB、GB等单位。在我的日常工作中这个命令使用频率极高几乎每天都要运行几次。输出示例Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 5.2G 14G 28% / tmpfs 1.9G 0 1.9G 0% /dev/shm经验之谈总是使用-h参数原始字节数对人工判断很不友好。另外df -Th可以同时显示文件系统类型这在排查挂载问题时特别有用。2.2 du命令目录/文件磁盘使用情况当发现磁盘空间不足时du(disk usage)命令可以帮助我们找出占用空间最大的目录du -sh /*这个命令会显示根目录下所有一级目录的大小。-s表示汇总-h同样是人类可读格式。更详细的用法du -h --max-depth1 /var/log | sort -h这个组合可以找出/var/log下占用空间最大的子目录并按大小排序。我在清理老旧日志时经常使用这个技巧。2.3 lsblk命令块设备信息lsblk可以列出所有块设备磁盘、分区等的树状结构lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT输出示例NAME SIZE FSTYPE MOUNTPOINT sda 20G ├─sda1 10G ext4 / └─sda2 10G swap注意lsblk显示的是物理设备信息而df显示的是已挂载文件系统的使用情况两者视角不同但互补。3. 高级磁盘信息查看方法3.1 fdisk分区表查看与操作fdisk是一个功能强大的分区工具查看分区信息sudo fdisk -l这个命令需要root权限会显示详细的磁盘分区表信息包括起始扇区、分区大小、分区类型等。安全提示fdisk不仅可以查看还可以修改分区表操作不当可能导致数据丢失。在生产环境中使用要格外小心。3.2 smartctl磁盘健康状态监测对于关心磁盘硬件健康的用户smartctl工具可以检查磁盘的SMART状态sudo smartctl -a /dev/sda这个命令会输出磁盘的详细健康信息包括温度、坏扇区计数、通电时间等。我在服务器维护中会定期检查这些指标提前发现可能故障的磁盘。3.3 iostat磁盘I/O性能监控要了解磁盘的实时I/O性能可以使用iostatiostat -dx 2这个命令每2秒刷新一次磁盘I/O统计信息包括读写速度、IOPS、等待时间等。在排查系统卡顿问题时非常有用。4. 图形化工具介绍虽然命令行是Linux的强项但图形界面工具也有其优势4.1 GNOME Disk Utility大多数Linux桌面环境都提供了图形化的磁盘工具。在GNOME中可以搜索Disks应用它提供了直观的磁盘信息展示和管理功能。4.2 ncdu终端下的可视化磁盘分析对于喜欢命令行的用户ncdu是一个基于ncurses的磁盘使用分析工具ncdu /它会扫描指定目录并以交互式界面显示磁盘使用情况支持导航和删除操作。5. 实际应用场景与技巧5.1 找出大文件组合使用find和du可以快速定位大文件find / -type f -size 100M -exec du -h {} | sort -rh | head -n 20这个命令会找出系统中大于100MB的文件并按大小排序显示前20个。5.2 监控磁盘空间变化使用watch命令可以实时监控磁盘空间变化watch -n 60 df -h这会让df -h命令每分钟自动运行一次方便观察磁盘使用情况的变化趋势。5.3 自动清理旧日志对于经常被日志填满的/var分区可以设置定期清理find /var/log -type f -mtime 30 -delete这个命令会删除30天前的日志文件。建议通过cron设置为每周自动运行。6. 常见问题排查6.1 df显示磁盘已满但找不到大文件这种情况通常是因为已删除的文件仍被进程占用。解决方法lsof | grep deleted找到相关进程后重启即可释放空间。6.2 磁盘I/O性能突然下降首先用iostat确认问题然后用iotop找出高I/O进程sudo iotop -o6.3 外置磁盘无法识别检查内核日志获取详细信息dmesg | tail -20通常能在这里找到设备识别失败的原因。7. 脚本自动化示例对于需要定期检查的服务器可以编写简单的监控脚本#!/bin/bash # 磁盘空间阈值百分比 THRESHOLD90 # 检查所有挂载点 df -h | awk 0$5 $THRESHOLD {print} # 检查inode使用情况 df -i | awk 0$5 $THRESHOLD {print}保存为check_disk.sh并设置为cron任务可以在磁盘空间不足时及时报警。8. 进阶工具与技巧8.1 LVM信息查看如果系统使用了LVM逻辑卷管理需要专门的命令查看pvdisplay # 物理卷信息 vgdisplay # 卷组信息 lvdisplay # 逻辑卷信息8.2 ZFS/Btrfs文件系统对于这些先进的文件系统需要使用专用命令# ZFS zpool list zfs list # Btrfs btrfs filesystem show btrfs filesystem usage /8.3 网络存储监控对于NFS等网络存储除了常规命令外还需要注意网络因素mount | grep nfs # 查看挂载的NFS nfsstat -c # NFS客户端统计掌握这些Linux磁盘信息查看方法你就能游刃有余地管理各种存储相关问题。在实际工作中我建议将这些命令组合成适合自己工作流的快捷方式或脚本可以大大提高效率。