宜在nodeJs中执行的shell代码

虽然nodejs运行时提供了和OS交互的诸多API命令,但是有些操作(例如:特定系统信息获取)还是使用shell命令更加方便一些,本文列举了一些宜在nodejs中执行的shell代码的例子。

  1. 获取 CPU 温度:

    javascript 复制代码
    const { exec } = require('child_process');
    
    exec('sensors', (err, stdout, stderr) => {
      if (err) {
        console.error(`Error: ${err}`);
        return;
      }
      console.log(`CPU Temperature:\n${stdout}`);
      console.error(`stderr: ${stderr}`);
    });

    上述代码使用 sensors 命令获取 CPU 温度信息。

  2. 获取硬盘 SMART 信息:

    javascript 复制代码
    const { exec } = require('child_process');
    
    exec('smartctl -a /dev/sda', (err, stdout, stderr) => {
      if (err) {
        console.error(`Error: ${err}`);
        return;
      }
      console.log(`Hard Disk SMART Information:\n${stdout}`);
      console.error(`stderr: ${stderr}`);
    });

    通过 smartctl 命令获取硬盘 SMART 信息。

  3. 获取网络接口信息:

    javascript 复制代码
    const { exec } = require('child_process');
    
    exec('ifconfig', (err, stdout, stderr) => {
      if (err) {
        console.error(`Error: ${err}`);
        return;
      }
      console.log(`Network Interfaces:\n${stdout}`);
      console.error(`stderr: ${stderr}`);
    });

    使用 ifconfig 命令获取网络接口信息。

  4. 获取系统日志:

    javascript 复制代码
    const { exec } = require('child_process');
    
    exec('journalctl', (err, stdout, stderr) => {
      if (err) {
        console.error(`Error: ${err}`);
        return;
      }
      console.log(`System Journal:\n${stdout}`);
      console.error(`stderr: ${stderr}`);
    });

    使用 journalctl 命令获取系统日志信息。

  5. 获取系统内存使用情况:

    javascript 复制代码
    const { exec } = require('child_process');
    
    exec('free -h', (err, stdout, stderr) => {
      if (err) {
        console.error(`Error: ${err}`);
        return;
      }
      console.log(`Memory Usage:\n${stdout}`);
      console.error(`stderr: ${stderr}`);
    });

    使用 free 命令获取系统内存使用情况。

  6. 查找系统中最大的文件:

    javascript 复制代码
    const { exec } = require('child_process');
    
    exec('find / -type f -exec du -h {} + | sort -rh | head -n 1', (err, stdout, stderr) => {
      if (err) {
        console.error(`Error: ${err}`);
        return;
      }
      console.log(`Largest File:\n${stdout}`);
      console.error(`stderr: ${stderr}`);
    });

    上述命令会查找系统中最大的文件并返回信息。

  7. 获取系统启动时间:

    javascript 复制代码
    const { exec } = require('child_process');
    
    exec('uptime -s', (err, stdout, stderr) => {
      if (err) {
        console.error(`Error: ${err}`);
        return;
      }
      console.log(`System Start Time:\n${stdout}`);
      console.error(`stderr: ${stderr}`);
    });

    使用 uptime 命令获取系统启动时间。

  8. 检查系统是否在运行特定服务:

    javascript 复制代码
    const { exec } = require('child_process');
    
    exec('systemctl is-active apache2', (err, stdout, stderr) => {
      if (err) {
        console.error(`Error: ${err}`);
        return;
      }
      const isActive = stdout.trim() === 'active';
      console.log(`Apache2 Status: ${isActive ? 'Running' : 'Inactive'}`);
      console.error(`stderr: ${stderr}`);
    });

    上述代码会检查 Apache2 服务是否在运行。

  9. 获取系统 IP 地址:

    javascript 复制代码
    const { exec } = require('child_process');
    
    exec('curl ifconfig.me', (err, stdout, stderr) => {
      if (err) {
        console.error(`Error: ${err}`);
        return;
      }
      console.log(`Public IP Address:\n${stdout}`);
      console.error(`stderr: ${stderr}`);
    });

    使用 curl 命令获取系统的公共 IP 地址。

  10. 检查系统中的软件包更新:

    javascript 复制代码
    const { exec } = require('child_process');
    
    exec('apt list --upgradable', (err, stdout, stderr) => {
      if (err) {
        console.error(`Error: ${err}`);
        return;
      }
      console.log(`Upgradable Packages:\n${stdout}`);
      console.error(`stderr: ${stderr}`);
    });

    上述代码会检查系统中可升级的软件包列表。

相关推荐
ByteCraze13 分钟前
CDN 引入 与 npm 引入的区别
前端·npm·node.js
crary,记忆15 分钟前
PNPM 和 NPM
前端·学习·npm·node.js
程序员爱钓鱼1 小时前
Node.js 编程实战:安装 Node.js 与 npm / yarn
后端·node.js·trae
程序员爱钓鱼1 小时前
Node.js 编程实战:配置开发环境
后端·node.js·trae
呲溜滑_1 小时前
langchain(node.js) 实际应用订单助手
microsoft·langchain·node.js
一字白首2 小时前
Node.js+Vue 联动,Vue 快速上手:基础学习
vue.js·学习·node.js
GISer_Jing2 小时前
深入解析Node.js中间件:从Express到Nest
中间件·node.js·express
爱吃无爪鱼2 小时前
02-前端开发核心概念完全指南
css·vue.js·前端框架·npm·node.js·sass
本妖精不是妖精2 小时前
在 CentOS 7 上部署 Node.js 18 + Claude Code
linux·python·centos·node.js·claudecode