1

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

  1. 那么这怎么可能(将磁盘空间存储在变量中)。
  2. 我的最终任务是检查远程服务器上的磁盘空间,如果小于 25%,则生成警报。
  3. 而且对于 HTML 部分,我正在使用 AngularJs。所以我必须在网页上提供一个按钮来强制检查并为用户生成警报。

我在下面添加了我通过控制台(两者)接收的输出格式

Shell 控制台输出 浏览器控制台输出

4

2 回答 2

1

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

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

在最后的字符串中,您将得到如下结果:/dev/sda1 609G 202G 376G 35% /

现在,您应该将此字符串拆分为空格字符。导致数组: 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

非常重要的注意事项:我建议你不要使用这种方法,因为它不安全(看你的图片)。

任何人都可以通过萤火虫追踪找到它!

于 2016-02-10T08:00:08.290 回答
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(/[ ,]+/));

});
于 2020-08-21T02:47:37.583 回答