我想计算并显示主文件系统的可用空间但是有3-4个用户,所有都应该是javascript,我们该怎么办?
我知道在linux shell中,我们可以这样做:
df -h
但是在javascript中它不是
答案 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)