别再只会用df -h了!CentOS 7/8硬盘监控,这7个命令才是运维老鸟的秘密武器

张开发
2026/4/10 22:11:18 15 分钟阅读

分享文章

别再只会用df -h了!CentOS 7/8硬盘监控,这7个命令才是运维老鸟的秘密武器
别再只会用df -h了CentOS 7/8硬盘监控这7个命令才是运维老鸟的秘密武器当服务器磁盘空间告警邮件突然弹出时大多数运维工程师的第一反应是df -h——这个命令确实能快速查看磁盘使用率但就像医生不能仅凭体温判断病情一样真正的磁盘故障排查需要更精密的诊断工具。本文将揭示资深运维工程师在实战中高频使用的7个命令组合带您从空间监控进阶到性能诊断与健康预测的立体化运维层次。1. 从空间监控到性能分析iostat的深度解读iostat -dx 1这个看似简单的命令实则暗藏玄机。当%util持续高于80%时说明磁盘I/O队列已饱和但此时若await平均I/O等待时间突然飙升到20ms以上问题可能不在磁盘本身而是后端应用产生了突发性小文件写入风暴。去年某电商大促期间我们就通过以下关键指标组合锁定了Nginx日志切割脚本的配置错误Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 12.00 0.00 300.00 0.00 2048.00 13.65 2.40 8.00 0.00 8.00 3.33 100.00解读这个魔鬼数字矩阵时要注意wkB/s突增但avgrq-sz很小 → 大量小文件写入w/s与**%util**双高 → I/O通道堵塞w_await显著高于svctm→ 存在排队堆积2. lsblk与blkid的拓扑侦查术新手常分不清/dev/sda1和/dev/mapper/centos-root的关联关系而老鸟会用lsblk -f一键绘制存储设备拓扑树NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs b325e5a7-3... /boot └─sda2 LVM2_mem ypQZ... ├─cl-root xfs d157... / └─cl-swap swap f247... [SWAP]配合blkid的物理设备指纹信息可以快速定位磁盘空间不足告警中的异常挂载点。曾有个经典案例某服务器/opt目录爆满实际是有人把Docker数据目录挂载到了SSD而不是专用的高速NVMe磁盘上。3. smartctl的健康预言机械硬盘的故障往往有征兆smartctl -A /dev/sda输出的这几个参数是死亡预言家Reallocated_Sector_Ct 50 → 坏道已开始扩散Current_Pending_Sector≠ 0 → 有即将失效的扇区Temperature_Celsius 60 → 需检查散热环境我们开发了一套自动分析脚本当检测到以下情况时会触发二级告警#!/bin/bash THRESHOLD$(smartctl -A /dev/sda | awk /Reallocated_Sector_Ct/ {print $10}) [ $THRESHOLD -gt 20 ] echo 预警硬盘开始出现坏道 | mail -s 硬盘健康警报 adminexample.com4. df的进阶用法inode危机预警df -i往往被忽视直到某天No space left on device报错出现时才发现是inode用尽。某社交平台曾因用户上传海量小图片导致inode耗尽即使磁盘空间还剩40%。老鸟的例行检查清单包含# 查找inode消耗大户 find / -xdev -printf %h\n | sort | uniq -c | sort -n5. 文件黑洞定位du与ncdu的组合拳du -sh *是基础操作但面对百万级文件目录时效率极低。采用ncdu这个神器可以交互式扫描还能直接删除异常文件。去年清理某个日志目录时我们发现某个服务生成的调试日志每小时增加2GB用以下命令锁定了元凶# 按修改时间排序大文件 find /var/log -type f -printf %s %p\n | sort -nr | head -106. 分区侦探fdisk与parted的互补艺术当需要扩容磁盘时fdisk -l和parted -l的对比阅读能避免灾难性错误。特别是对于GPT分区表parted能显示更完整的信息。有个血泪教训某工程师在扩容时没注意到磁盘是GPT格式用fdisk操作导致分区表损坏。正确的检查流程应该是parted /dev/sda print | grep Partition Table fdisk -l /dev/sda | grep Disk label type7. 终极组合实时监控脚本将上述命令封装成巡检脚本每5分钟采集关键指标#!/bin/bash LOG/var/log/disk_monitor_$(date %Y%m%d).log { echo $(date) df -h | grep -v tmpfs echo ---- iostat ---- iostat -dx 1 3 | grep -A1 Device echo ---- SMART ---- smartctl -A /dev/sda | grep -E Reallocated|Pending|Temperature } $LOG这个脚本在我们数据中心运行三年成功预测了17块硬盘的故障。真正的运维高手不是记住更多命令而是知道在什么场景下用什么组合快速定位问题。当您下次再遇到磁盘告警时不妨试试这套组合诊断法或许能发现隐藏更深的系统隐患。

更多文章