信息发布→ 登录 注册 退出

php如何获取服务器cpu信息_php读取系统资源信息的shell_exec应用

发布时间:2025-11-26

点击量:
答案:通过shell_exec()执行Linux命令可获取PHP服务器CPU信息。1. 读取/proc/cpuinfo获取CPU型号、核心数等基本信息;2. 使用grep统计processor行数得逻辑核心数,提取cpu cores字段获物理核心数;3. 执行top命令解析Cpu(s)行,计算空闲率得出CPU使用率;4. 需注意shell_exec权限与安全,建议过滤输入并做异常处理,确保生产环境安全稳定运行。

php如何获取服务器cpu信息_php读取系统资源信息的shell_exec应用

在PHP中获取服务器CPU信息,可以通过调用系统命令来实现。虽然PHP本身没有内置函数直接读取CPU详情,但可以借助 shell_exec() 函数执行Linux系统的shell命令,从而获取详细的系统资源信息,包括CPU型号、核心数、使用率等。

1. 获取CPU基本信息

Linux系统中,/proc/cpuinfo 文件保存了CPU的详细信息。使用 shell_exec() 读取该文件内容,可提取关键数据:

$output = shell_exec('cat /proc/cpuinfo');
echo '<pre class="brush:php;toolbar:false;">' . $output . '
';

返回内容包含:

  • processor:逻辑处理器编号(可用于计算核心数)
  • model name:CPU型号名称
  • cpu cores:物理核心数量
  • cpu MHz:当前运行频率

如果只想提取CPU型号,可以结合grep过滤:

$cpuModel = shell_exec("grep 'model name' /proc/cpuinfo | uniq");
echo "CPU型号:" . trim(str_replace('model name\t: ', '', $cpuModel));

2. 获取CPU核心与线程数

通过统计 processor 行的数量,可得到逻辑核心(线程)总数:

$coreCount = (int)shell_exec("grep -c 'processor' /proc/cpuinfo");
echo "逻辑核心数(线程数):" . $coreCount;

物理核心数通常可在“cpu cores”字段中找到:

Motiff妙多 Motiff妙多

Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”

Motiff妙多 334 查看详情 Motiff妙多
$physicalCores = shell_exec("grep 'cpu cores' /proc/cpuinfo | uniq");
echo "物理核心数:" . trim(str_replace('cpu cores\t: ', '', $physicalCores));

3. 实时获取CPU使用率

CPU使用率无法直接从 /proc/cpuinfo 获取,需通过 topvmstat 等命令分析。下面是一个简单方式使用 top 命令获取近似值:

$cpuUsage = shell_exec("top -bn1 | grep 'Cpu(s)'");
preg_match('/\d+\.\d+ id/', $cpuUsage, $matches);
$idle = floatval(trim(str_replace(' id', '', $matches[0])));
$usage = 100 - $idle;
echo "CPU使用率:" . round($usage, 2) . "%";

说明:top 输出中的 “id” 表示空闲百分比,用100减去即为使用率。

4. 安全与权限注意事项

  • 确保PHP运行用户(如www-data)有权限执行shell命令
  • 线上环境建议关闭 shell_exec() 的风险操作,或限制可执行命令
  • 生产环境中应做异常处理,防止命令执行失败导致页面报错
  • 可配合 escapeshellarg() 防止命令注入

例如添加基础判断:

if (function_exists('shell_exec')) {
    $result = @shell_exec('grep "model name" /proc/cpuinfo | head -1');
    if ($result) {
        echo "CPU信息:" . htmlspecialchars(trim($result));
    } else {
        echo "无法获取CPU信息";
    }
} else {
    echo "shell_exec被禁用,请检查php.ini配置";
}

基本上就这些。利用shell_exec结合Linux命令,能灵活获取服务器资源状态,适用于监控类功能开发。只要注意安全和兼容性,这种方式简单有效。

以上就是php如何获取服务器cpu信息_php读取系统资源信息的shell_exec应用的详细内容,更多请关注其它相关文章!


相关文章: 如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】  Kafka Streams中基于消息头条件过滤消息的实现指南  MongoDB聚合管道:正确匹配对象数组中_id的方法  淘宝网网页版登录入口 淘宝官方网页版快捷登录  Lar*el 8 多关键词数据库搜索优化实践  谷歌浏览器浏览体验优化_谷歌浏览器新版直连永久可用提示  J*aScript中管理异步API调用:确保操作顺序与数据一致性  怎么搭建一个php网站源码_搭php网站源码搭建教程  Steam官网入口直达 Steam注册及登录步骤  Golang如何使用new_Go new分配内存机制讲解  qq游戏免费畅玩入口_qq游戏电脑版快速启动  树莓派传感器触发:通过Twilio API发送WhatsApp消息教程  C++如何生成随机数_C++ random库使用方法与范围设置  c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧  蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】  Win10文件资源管理器“此电脑”分组怎么关 Win10恢复经典视图【技巧】  神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正  PHP URL参数传递与500错误调试指南  Tabulator表格日期时间排序问题及自定义解决方案  《噬血代码2》新预告片发布 展示游戏剧情  LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读  vivo云服务网页版登录 怎么登录vivo云服务网页版  Python实时数据流中的动态最值查找策略  PHP:从文本中提取带逗号的数字价格教程  如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式  Centos/Linux 系统下安装 composer 的完整步骤  Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】  PHP面向对象编程中避免重复创建PDO数据库连接的最佳实践  大象笔记网页版入口 印象笔记网页版登录入口  163邮箱官方主页登录 直达网易邮箱登录核心页面  学习通在线学习平台 学习通网页版直接进入课程中心  Win10系统服务哪些可以禁用 Win10安全优化服务列表【干货】  qq游戏跨平台入口_qq游戏多设备同步登录  c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解  Selenium Python中处理点击后新窗口加载冻结问题的策略与实践  Node.js中HTML按钮与J*aScript函数交互的正确姿势  JUnit5/Mockito:优雅测试内部依赖与异常处理的实践  sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统  sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程  iCloud登录入口网页版 苹果iCloud官网登录  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令  c++中的std::launder有什么实际用途_c++对象生命周期与指针优化  Go语言HTML解析:利用Goquery精准获取指定元素内容  Yandex官网免登录入口_俄罗斯Yandex搜索引擎一键访问  163邮箱注册官网 免费申请163个人邮箱  将PCM16音频转换为W*并编码为Base64:浏览器环境下的手动处理指南  Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】  Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法  outlook中文官网入口地址 outlook官方中文版直达首页链接  如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension 

在线客服
服务热线

服务热线

4008988990

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!