如何计算远程服务器上的磁盘空间并使用ssh2&存储值。 Node.js的?

时间:2016-02-10 07:27:54

标签: javascript angularjs node.js ssh2-sftp

目前,我使用SSH2和node.js来监控远程服务器上的磁盘空间和分区。并将输出打印到控制台。但输出是字符串格式,所以我无法在任何变量中存储可用空间/总空间值。 目前我在 node.js(ssh2)中使用 con.exec 运行 df -k 命令,以便使用远程服务器运行命令凭证。

  1. 那么怎么可能(将磁盘空间存储在变量中)。
  2. 我的最后一项任务是检查远程服务器上的磁盘空间,如果它是< 25%。
  3. 还有HTML第一部分使用AngularJs。因此,我必须在网页上设置一个按钮,以强制检查并为用户生成警报。
  4. 我添加了输出格式我通过控制台(两者)接收

    Shell Console Output Browser Console Output

2 个答案:

答案 0 :(得分:1)

使用df -h | grep sd仅选择HDD主分区的行。

之后,在结果数组的数据内容中(参见图片,数组“data”的第一项:“RESULT”)将空格序列更改为一个空格。例如,在您上传的图片中Filesystem之后有4个空格,请用一个空格替换它们。

在最后一个字符串中,你会得到如下结果:/dev/sda1 609G 202G 376G 35% /

现在,您应该拆分此字符串whit space char。导致数组: item[0] is Filesystem item[1] is total space item[2] is used space item[3] is available space item[4] is used space in percent form item[5] is mounted on path

非常非常重要的提示:我建议您不要使用此方法,因为安全(查看图片)。

任何人都可以通过跟踪 firebug 来找到它。

答案 1 :(得分:0)

尝试一下, 如果您使用的是linux系统,则可以使用命令“ df -h | grep sd”来查找磁盘空间,我肯定也必须有Windows命令
js中的“ child_process”模块有助于运行系统命令。要查找磁盘空间详细信息,请使用以下代码。

let command = `df -h | grep sd`;
child_process.exec(command, (err, stdout, stdin) => {
    if (err) {
        console.log("Err", err)

    }
    console.log("Out", stdout.split(/[ ,]+/));

});