怎么在Linux利用Lsblk-J输出JSON格式的磁盘拓扑以便进行可视化展示

夏强姑娘_8610

夏强姑娘_8610

2026-05-12

1079人浏览

原创

lsblk -J 是获取结构化磁盘拓扑最直接的方式,输出标准 JSON,通过 "children" 数组表达层级关系,字段清晰且天然适配可视化工具。

怎么在linux利用lsblk-j输出json格式的磁盘拓扑以便进行可视化展示

lsblk -J 是获取磁盘拓扑结构最直接、最适配可视化工具的方式。它输出标准 JSON,字段清晰、嵌套合理,天然支持前端图表库(如 D3.js、ECharts)或运维平台解析。

用 lsblk -J 获取结构化磁盘拓扑

该命令默认递归展示设备树(disk → part → lvm/rom 等),所有层级关系通过 "children" 数组表达,每个节点包含设备基础属性和挂载/文件系统信息。

运行命令:

lsblk -J

典型输出片段(已简化):

Linux Security Scanner
Linux Security Scanner

Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

下载
{
  "blockdevices": [
    {
      "name": "sda",
      "kname": "sda",
      "path": "/dev/sda",
      "size": "20G",
      "type": "disk",
      "mountpoint": null,
      "children": [
        {
          "name": "sda1",
          "kname": "sda1",
          "path": "/dev/sda1",
          "size": "500M",
          "type": "part",
          "mountpoint": "/boot",
          "fstype": "ext4",
          "uuid": "e2f8b2f8-2c0b-4e7a-8fb7-7e85a8e8c8e8"
        },
        {
          "name": "sda2",
          "kname": "sda2",
          "path": "/dev/sda2",
          "size": "1G",
          "type": "part",
          "mountpoint": null,
          "fstype": "LVM2_member",
          "children": [
            {
              "name": "lvm-root",
              "kname": "dm-0",
              "path": "/dev/mapper/vg0-root",
              "size": "15G",
              "type": "lvm",
              "mountpoint": "/",
              "fstype": "ext4",
              "uuid": "3f6e3f6e-2d4f-4d69-8df4-f7e6a7e7e6a7"
            }
          ]
        }
      ]
    },
    {
      "name": "sr0",
      "kname": "sr0",
      "path": "/dev/sr0",
      "size": "1024M",
      "type": "rom",
      "mountpoint": null
    }
  ]
}

关键字段说明(用于可视化映射)

  • "name":显示名称(如 sda, sda1),适合做节点标签
  • "type":决定图标类型(disk→硬盘图标,part→分区,lvm→逻辑卷,rom→光驱)
  • "size":原始字符串(如 "20G"),建议后端解析为字节数便于排序或缩放
  • "mountpoint":非空表示已挂载,可标为绿色/高亮;null 表示未挂载
  • "fstype" 和 "uuid":辅助识别文件系统类型与唯一性,可用于 tooltip 或筛选
  • "children":定义父子关系,是构建树图(Tree Diagram)、拓扑图(Topology Graph)的核心依据

提升可视化可用性的实用技巧

  • 加 -f 显式包含文件系统信息(lsblk -Jf),确保 fstype、label、uuid、mountpoint 全量输出
  • 加 -p 获取完整路径(lsblk -Jfp),方便关联 /dev/ 设备节点做进一步操作(如点击跳转到 udevadm info)
  • 加 -o 自定义字段(但注意 -J 模式下仅部分字段生效);推荐组合:
    lsblk -Jfpm

    同时带文件系统、权限(owner/group/mode)和完整路径,适合安全审计类可视化

  • 若需过滤(例如只看物理磁盘及其子设备),可配合 jq 预处理:
    lsblk -J | jq '.blockdevices[] | select(.type == "disk")'

    或排除 RAM 盘(主设备号 1):

    lsblk -Je 1 -J

注意事项

  • 输出中 "size" 默认是人类可读格式(如 20G),脚本解析时建议用 -b(lsblk -Jfb)强制字节单位,避免单位转换错误
  • 所有字段均为只读快照,不依赖 root 权限,普通用户可执行
  • JSON 输出严格遵循层级嵌套,无需额外解析依赖关系——children 存在即表示从属,不存在即为叶子节点

不复杂但容易忽略:确保接收端(如 Web 前端或 Python 脚本)正确处理 null 值和嵌套深度,避免渲染时报错。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4330

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3653

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2893

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

7150

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6782

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3893

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3385

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3619

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习