如何在JavaScript中计算Linux上的可用磁盘空间?

时间:2014-08-07 15:10:48

标签: javascript linux node.js

我想计算并显示主文件系统的可用空间但是有3-4个用户,所有都应该是javascript,我们该怎么办?

我知道在linux shell中,我们可以这样做:

df -h

但是在javascript中它不是

5 个答案:

答案 0 :(得分:2)

Node diskusage会这样做。

复制他们的示例代码:

#!/usr/bin/env node
var disk = require('diskusage');

// get disk usage. Takes mount point as first parameter
disk.check('/', function(err, info) {
    console.log(info.free);
    console.log(info.total);
});

您需要安装节点(如果您还没有它)并且当然从npm获取node-diskfree包。

编辑:切换到跨平台软件包,该软件包在所有操作系统上运行,并且不会刮取命令行工具。

答案 1 :(得分:1)

您使用的是什么JavaScript环境? NodeJS有一个可用于生成df命令的子进程模块,有关详细信息,请参阅http://nodejs.org/api/child_process.html

我想你并没有在基于浏览器的JavaScript沙箱中尝试这个。

答案 2 :(得分:0)

无耻插头 - https://www.npmjs.com/package/microstats

还可以配置为在磁盘空间超过用户定义的阈值时提醒用户。适用于linux,macOS和windows。

答案 3 :(得分:0)

您可以使用磁盘npm和child_process.exec('df / -h')来获取此参数。 但是diskusage npm更可靠且易于使用。如果使用cp.exec('...'),则应自己处理返回的字符串以检索所需的参数。

答案 4 :(得分:0)

您可以通过运行命令df -h > df.txt来完成此操作,该命令将df -h的输出写入名为df.txt的文件中。然后,您可以读取文件并为其匹配正则表达式。

const { exec } = require('child_process');
const { readFileSync, unlinkSync } = require('fs')

var space;

exec('df -h > df.txt');

space = readFileSync('df.txt', (data, err) => {
  if (err) {
    throw err
  }
}).toString().match(/[0-9]+\.[0-9]+?../)[0]

console.log(space)