nodejs调用linux命令

(1).调用curl命令:
var exec = require('child_process').exec;
var cmdStr = 'curl http://www.weather.com.cn/data/sk/101010100.html';
exec(cmdStr, function(err,stdout,stderr){
if(err) {
console.log('get weather api error:'+stderr);
} else {
/*
这个stdout的内容就是上面我curl出来的这个东西:
{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"3","WD":"西北风","WS":"3级","SD":"23%","WSE":"3","time":"21:20","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1019"}}
*/
var data = JSON.parse(stdout);
console.log(data);
}
});
(2).调用ls -l命令
var exec = require('child_process').exec;
var cmdStr = 'ls -l';
exec(cmdStr, function (err, stdout, srderr) {
if(err) {
console.log(srderr);
} else {
console.log(stdout);
}
});
(3).调用一个shell脚本(注意:根据代码,test.sh脚本文件需要保存在与nodejs同目录下)
var exec = require('child_process').execFile;
exec('./test.sh',{encoding:'utf8'},function (err,stdout,stderr){
if (err){
console.log(err);
return;
}
console.log(stdout)
});
要实现在Node.js的前端页面上显示Linux系统的CPU、内存和磁盘占用率,可以通过前后端分离的方式来实现。具体步骤如下: 1. 后端编写API接口:使用Node.js编写一个API接口,通过调用系统命令或者使用第三方库(如psutil)来获取系统的CPU、内存和磁盘占用率信息,并将这些信息以JSON格式返回给前端页面。 2. 前端页面调用API接口:在前端页面上通过Ajax或者其他方式调用后端编写的API接口,获取系统的占用率信息,并将这些信息展示在页面上。 下面是一个简单的示例,演示如何在Node.js中实现后端API接口和前端页面。 后端API接口: ```javascript const express = require('express'); const app = express(); const os = require('os-utils'); app.get('/api/system-info', (req, res) => { const cpuUsage = os.cpuUsage(); const freeMemory = os.freememPercentage(); const totalMemory = os.totalmem(); const usedMemory = totalMemory * (1 - freeMemory); const freeDisk = os.freemem() / 1024 / 1024 / 1024; const totalDisk = os.totalmem() / 1024 / 1024 / 1024; const usedDisk = totalDisk - freeDisk; const systemInfo = { cpuUsage, memoryUsage: { used: usedMemory, total: totalMemory, free: freeMemory }, diskUsage: { used: usedDisk, total: totalDisk, free: freeDisk } }; res.json(systemInfo); }); app.listen(3000, () => { console.log('Server started on http://localhost:3000'); }); ``` 以上代码使用了os-utils库来监控系统的CPU、内存和磁盘占用率,并将这些信息打包成JSON格式返回给前端页面。 前端页面: ```html <!DOCTYPE html> <html> <head> <title>System Info</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> </head> <body> <div id="app"> <h1>System Info</h1> <p>CPU Usage: {{ systemInfo.cpuUsage }}%</p> <p>Memory Usage: {{ systemInfo.memoryUsage.used }} / {{ systemInfo.memoryUsage.total }} GB ({{ systemInfo.memoryUsage.free }}% Free)</p> <p>Disk Usage: {{ systemInfo.diskUsage.used }} / {{ systemInfo.diskUsage.total }} GB ({{ systemInfo.diskUsage.free }}% Free)</p> </div> <script> const app = new Vue({ el: '#app', data: { systemInfo: {} }, mounted() { axios.get('/api/system-info') .then(response => { this.systemInfo = response.data; }) .catch(error => { console.log(error); }); } }); </script> </body> </html> ``` 以上代码使用了Vue.js和Axios库来调用后端API接口,并将获取到的系统占用率信息展示在页面上。 需要注意的是,以上代码仅为示例代码,实际情况中可能需要根据不同的系统平台、编程语言和库来进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值