簡體   English   中英

如何從 df ~ 提取數據到我的網站上?

[英]How do I extract data from df ~ onto my website?

我正在創建一個餅圖,顯示我的 linux 盒子上可用/使用了多少磁盤空間。 但是,我不確定如何將數據解析到微服務 url 上。 幫助將不勝感激。

這是我目前所擁有的:

路由器:

router.route('/linux_disk').get(disk.get_linux_disk)

Controller:

 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);
  }
}

您可以嘗試以下方法,我們為 df 命令創建的每個條目創建一行 object。 一旦你有了這個,你應該能夠從這個創建你的餅圖:

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 看起來有點像這樣:

[
    {
        "Filesystem": "/dev/sda1",
        "1K-blocks": "10253588",
        "Used": "7971516",
        "Available": "1741504",
        "Use%": "83%",
        "Mounted": "/"
    }
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM