宜在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}`);
    });

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

相关推荐
程序员爱钓鱼11 小时前
Node.js 编程实战:数据库连接池与性能优化
javascript·后端·node.js
程序员爱钓鱼11 小时前
Node.js 编程实战:Redis缓存与消息队列实践
后端·面试·node.js
用户479492835691512 小时前
node_modules 太胖?用 Node.js 原生功能给依赖做一次大扫除
前端·后端·node.js
行走的陀螺仪15 小时前
Vite & Webpack 插件/Loader 封装完全指南
前端·webpack·node.js·vite·前端工程化·打包构建
源去_云走16 小时前
自建 Iconfy API 服务:解决国内访问不稳定问题
前端·容器·npm·node.js
刘某的Cloud17 小时前
shell脚本-read-输入
linux·运维·bash·shell·read
旧梦星轨21 小时前
掌握 Vite 环境配置:从 .env 文件到运行模式的完整实践
前端·前端框架·node.js·vue·react
qq_348231851 天前
面向初学者到进阶者的 Node.js 学习指南
node.js
大猫和小黄1 天前
Windows 下使用 NVM 管理多个 Node.js 版本
windows·node.js
Chase_______1 天前
【保姆级】Node.js 最新安装教程,附环境变量配置
node.js