首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从df ~提取数据到我的网站?

如何从df ~提取数据到我的网站?
EN

Stack Overflow用户
提问于 2019-10-08 16:44:45
回答 1查看 79关注 0票数 1

我正在创建一个饼图,它显示了我的linux机器上有多少磁盘空间可用/已用。然而,我不确定如何将数据解析到微服务url上。我们将非常感谢您的帮助。

这是我目前所拥有的:

路由器:

代码语言:javascript
复制
router.route('/linux_disk').get(disk.get_linux_disk)

控制器:

代码语言:javascript
复制
 function get_linux_disk(req, res, next) {
  try {
    var cmd = `df ~`;
    exec(cmd)

    rows = [];
    rows.push({"Command": cmd});
    if (rows.length >= 1) {
      res.status(200).json(rows);
    } else {
      res.status(404).end();
    }
  } catch (err) {
    next(err);
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-08 18:51:26

您可以尝试下面的方法,我们为df命令创建的每个条目创建一个row对象。一旦你有了它,你就可以用这个来创建你的饼图:

代码语言:javascript
复制
const { exec } = require('child_process');
const { promisify } = require('util');
const execPromise = promisify(exec);

async function get_linux_disk(req, res, next) {
    try {
        const result = await execPromise(`df ~`)
        const lines = result.stdout.split("\n");
        const keys = lines[0].split(/\s+/ig);
        // Skip the header row when assigning objects..
        const rows = lines.slice(1).map(line => {
            // Parse each line..
            const values = line.split(/\s+/ig);
            return keys.reduce((o, k, index) => {
                o[k] = values[index];
                return o;
            }, {})
        });
        res.status(200).json(rows);
    } catch (err) {
        res.status(500).send(err.message);
    }
}

生成的JSON看起来有点像这样:

代码语言:javascript
复制
[
    {
        "Filesystem": "/dev/sda1",
        "1K-blocks": "10253588",
        "Used": "7971516",
        "Available": "1741504",
        "Use%": "83%",
        "Mounted": "/"
    }
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58282929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档