Linux本身不提供磁盘空间趋势图,需借助node_exporter+Prometheus+Grafana组合实现:node_exporter采集文件系统指标,Prometheus存储历史数据(默认15天),Grafana通过PromQL绘制根目录使用率变化曲线。

Linux本身不提供磁盘空间趋势图,得靠外部工具补全
Linux命令行(df、du)只给瞬时快照,没有历史数据,更不会自动生成趋势图。想看到“过去7天根目录使用率变化曲线”,必须引入带存储+可视化的监控组件。
用 node_exporter + Prometheus + Grafana 搭建基础趋势能力
这是生产环境最通用的组合,能自动采集、存档、绘图:
-
node_exporter负责每15–60秒抓取一次node_filesystem_avail_bytes、node_filesystem_size_bytes等指标 -
Prometheus默认保留15天原始数据(可调),支持按时间范围查历史值 -
Grafana里新建面板,写查询:100 - (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100,就能画出根目录使用率随时间变化的折线图 - 注意 mountpoint 标签要和
df输出一致(比如/boot、/home需单独加面板)
临时应急:用脚本 + gnuplot 快速生成单次趋势图
如果只是排查近期异常,不想搭整套监控,可以用 cron 定期记录 + 手动绘图:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 每小时执行:
date +"%Y-%m-%d %H:%M" >> /tmp/df.log && df -h / | awk 'NR==2 {print $5}' >> /tmp/df.log - 跑满24小时后,用
gnuplot画图(需提前安装):set xdata time<br>set timefmt "%Y-%m-%d %H:%M"<br>set format x "%m/%d\n%H:%M"<br>plot "/tmp/df.log" using 1:2 with lines
- 缺点:无告警、不持久、不能跨主机聚合;优点:5分钟内跑出图,不依赖网络或服务端
别指望 ncdu 或 Baobab 出趋势图
这两个工具解决的是“此刻哪个目录最大”的问题,不是“过去怎么涨的”:
-
ncdu是交互式目录分析器,所有数据来自当前du扫描,不保存历史 -
Baobab是 GNOME 图形工具,只读取当前文件系统状态,刷新即重算 - 它们连时间戳都不记,自然没法回溯或拟合趋势
真正容易被忽略的点是:趋势图的价值不在“画出来”,而在“数据留存策略”。Prometheus 默认只存15天,如果想看季度变化,得调大 --storage.tsdb.retention.time,或者把老数据导出到长期存储——否则图再好看,三个月前的数据早就丢了。

















