Linux分区监控可从分区状态、空间使用、I/O性能三方面入手,常用工具及方法如下:
df
:查看分区总容量、已用空间、使用率等,-h
选项以人类可读格式显示,-T
显示文件系统类型。df -hT
du
:统计目录/文件占用空间,-sh
可汇总指定目录总大小,-c
显示总计。du -sh /home
lsblk
:以树状结构展示分区层级、大小、挂载点及UUID,适合快速定位分区。lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
parted
/fdisk
:查看分区表详情(如GPT/MBR),parted
支持大容量硬盘和脚本化操作。sudo parted /dev/sda print
iostat
:监控磁盘读写速率、I/O请求队列等,-x
显示扩展统计信息,-d
仅显示磁盘数据。iostat -x 1 5 # 每秒刷新1次,共5次
iotop
:实时显示进程级磁盘I/O占用,按q
退出。sudo iotop
vmstat
:查看系统整体I/O情况,bi
(块输入)、bo
(块输出)字段反映磁盘活动。vmstat 1 5
df
和cron
定时任务,当使用率超过阈值(如80%)时发送邮件。# 示例脚本(保存为check_disk.sh)
THRESHOLD=80
for PART in $(df -hT | awk 'NR>1 {print $1}'); do
USED=$(df -hT $PART | awk '/^.*%/{print $5}' | sed 's/%//')
if [ $USED -ge $THRESHOLD ]; then
echo "WARNING: $PART is ${USED}% used!" | mail -s "Disk Alert" admin@example.com
fi
done
Prometheus+Grafana
搭建监控系统,通过插件采集分区使用率和I/O数据,生成实时图表。df -hT
(空间)、lsblk
(分区结构)、iotop
(实时I/O)。iostat -x
(I/O细节)、smartctl -a /dev/sda
(硬盘健康状态)。cron+脚本
(定期告警)、Prometheus
(长期趋势监控)。以上工具均来自Linux原生支持或主流开源项目,可根据实际需求组合使用。